Mysql
 sql >> Database >  >> RDS >> Mysql

Combinando più righe o risultati con lo stesso titolo per formare menu a discesa con PHP e MySQL

Non sono sicuro della sintassi di PHP, ma lo pseudocodice ecco cosa potresti fare:

allProductsReturnedFromMySQL = QueryYourDatabaseForAllProducts()
Hashtable[productId, List[productSizes]] dropDownsByProduct;
Hashtable[productId, commonProductInformation] uniqueProducts;

foreach (product in allProductsReturnedFromMySQL) {
    if product.productId not in uniqueProducts
        then add it with the product information that does not vary

    if product.productId not in dropDownsByProduct
        then add it with an empty list

    append the size of this product to the corresponding list in dropDownsByProduct
}

Dopo quel po 'di logica avrai tutti i tuoi prodotti unici con le proprietà comuni per ciascuno e un modo per recuperare le dimensioni corrispondenti a discesa. Se volessi farlo esclusivamente in SQL per ridurre al minimo i dati trasferiti, potresti fare qualcosa del genere:

-- this would get you your products
select distinct id, property1, property2 from product

-- this would get you your drop downs by product
select id, size from product order by id

È quindi possibile creare la stessa tabella hash a discesa scorrendo il secondo set di risultati.