Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Combinando várias linhas ou resultados com o mesmo título para formar menus suspensos com PHP e MySQL


Não tenho certeza sobre a sintaxe do PHP, mas pseudocódigo aqui está o que você pode fazer:
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
}

Após esse pouco de lógica, você terá todos os seus produtos exclusivos com as propriedades comuns para cada um e uma maneira de buscar os tamanhos correspondentes no menu suspenso. Se você quisesse fazer isso puramente em SQL para minimizar os dados transferidos, você poderia fazer algo assim:
-- 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

Você pode então construir a mesma tabela de hash suspensa iterando pelo segundo conjunto de resultados.