Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да накарам категорията от първо ниво да се показва само веднъж?

извежда само catname когато се промени. Също така ще трябва първо да подредите заявката си по име_на категория.

$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>";

Редактиране:Просто прочетете отново въпроса напълно и искате да кажете, че когато става въпрос за йерархични дървета, използването на родител/дете (или категория/под/подподраздел) не е най-добрият метод. Въпреки че работи, обикновено изисква множество заявки и рекурсивни функции за показване. По-добър подход е да използвате вложен набор който е направен точно за тази цел.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем с utf-8 кодиране с PHP + MySQL

  2. Обосновка на спиращите думи в пълен текст на MySQL

  3. Промяна на формата на датата в заявката

  4. localhost срещу 127.0.0.1 в mysql_connect()

  5. Как да изберете последния запис от MySQL таблицата с помощта на SQL синтаксис