sql >> Databáze >  >> RDS >> Mysql

Kombinace více řádků nebo výsledků se stejným názvem do rozbalovacích nabídek s PHP a MySQL

Nejsem si jistý syntaxí PHP, ale můžete udělat následující pseudokód:

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
}

Po této troše logiky budete mít všechny své jedinečné produkty se společnými vlastnostmi pro každý z nich a rozbalovací seznam způsob, jak získat odpovídající velikosti. Pokud byste to chtěli udělat čistě v SQL, abyste minimalizovali přenášená data, můžete udělat něco takového:

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

Potom můžete vytvořit stejnou rozevírací hashovací tabulku iterací přes druhou sadu výsledků.



  1. Jak TRIM_ORACLE() funguje v MariaDB

  2. Jak vložit hodnoty do tabulky s cizím klíčem pomocí MySQL?

  3. Problém při vkládání z python skriptu do databáze mysql s enginem innondb

  4. Chyba kódování PHP při vytváření XML z databáze