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.