sql >> Base de Datos >  >> RDS >> Mysql

Combinar varias filas o resultados con el mismo título para formar menús desplegables con PHP y MySQL

No estoy seguro acerca de la sintaxis de PHP, pero esto es lo que podría hacer en pseudocódigo:

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
}

Después de ese poco de lógica, tendrá todos sus productos únicos con las propiedades comunes para cada uno, y una forma de obtener los tamaños correspondientes desplegables. Si quisiera hacer esto puramente en SQL para minimizar los datos que se transfieren, podría hacer algo como esto:

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

A continuación, puede crear la misma tabla hash desplegable iterando a través del segundo conjunto de resultados.