Tôi không chắc về cú pháp PHP, nhưng mã giả đây là những gì bạn có thể làm:
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
}
Sau chút logic đó, bạn sẽ có tất cả các sản phẩm độc đáo của mình với các thuộc tính chung cho từng sản phẩm và một cách để tìm nạp các kích thước tương ứng thả xuống. Nếu bạn muốn thực hiện việc này hoàn toàn trong SQL để giảm thiểu dữ liệu được truyền, bạn có thể làm như sau:
-- 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
Sau đó, bạn có thể tạo bảng băm thả xuống tương tự bằng cách lặp lại qua tập kết quả thứ hai.