Mysql
 sql >> Base de données >  >> RDS >> Mysql

Combiner plusieurs lignes ou résultats avec le même titre pour former des menus déroulants avec PHP et MySQL

Je ne suis pas sûr de la syntaxe PHP, mais le pseudocode voici ce que vous pourriez faire :

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
}

Après ce peu de logique, vous aurez tous vos produits uniques avec les propriétés communes pour chacun, et un moyen de récupérer les tailles correspondantes dans le menu déroulant. Si vous vouliez le faire uniquement en SQL pour minimiser les données transférées, vous pourriez faire quelque chose comme ceci :

-- 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

Vous pouvez ensuite créer la même table de hachage déroulante en parcourant le deuxième ensemble de résultats.