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

Jak sprawić, by kategoria pierwszego poziomu była wyświetlana tylko raz?

wypisz tylko catname kiedy to się zmieni. Musisz również najpierw uporządkować zapytanie według nazwy_kategorii.

$row = mysql_fetch_array($result);
$catname = $row["category_name"];
$subcatname = $row["subcategory_name"];
$last = $catname;

echo "<li>$catname</li><ul>"

while($row = mysql_fetch_array($result)) {
    $catname = $row["category_name"];
    $subcatname = $row["subcategory_name"];
    if($last != $catname){
        echo "</ul><li>$catname</li><ul>"
    }
    echo "<li>$subcatname</li>";
    $last = $catname;
}
echo "</ul>";

Edycja:po prostu ponownie przeczytaj pytanie w całości i chcę powiedzieć, że jeśli chodzi o drzewa hierarchiczne, użycie rodzica/podrzędnego (lub kategorii/podrzędnej/podpodrzędnej) nie jest najlepszą metodą. Chociaż to działa, zwykle wymaga wielu zapytań i funkcji rekurencyjnych do wyświetlenia. Lepszym podejściem jest użycie zestawu zagnieżdżonego który jest stworzony dokładnie w tym celu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pamięć podręczna zapytań nie działa

  2. #1136 – Liczba kolumn nie odpowiada liczbie wartości?

  3. Jak mogę wykonać FULL OUTER JOIN w MySQL?

  4. Jak skonfigurować Hibernate do odczytu/zapisu do różnych źródeł danych?

  5. MySQL:Nie można utworzyć tabeli (errno:150)