Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Łączenie wielu wierszy lub wyników z tym samym tytułem w celu utworzenia rozwijanych menu z PHP i MySQL

Nie jestem pewien składni PHP, ale oto co możesz zrobić pseudokodem:

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 tej odrobinie logiki będziesz mieć wszystkie swoje unikalne produkty o wspólnych właściwościach dla każdego z nich, a także sposób na pobranie odpowiednich rozmiarów. Jeśli chcesz to zrobić wyłącznie w SQL, aby zminimalizować przesyłane dane, możesz zrobić coś takiego:

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

Następnie możesz zbudować tę samą rozwijaną tabelę hashowania, przechodząc przez drugi zestaw wyników.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Poprawne zaimplementowanie podtypu super-type w MySQL

  2. Jak stworzyć format json z mysql group-concat?

  3. MySQL:dynamiczne określanie klucza podstawowego tabeli

  4. Wizualny Konstruktor Zapytań

  5. Używanie frameworka encji z bazą danych MySQL i projektantem modelu nie pobiera zapisanych parametrów proc