sql >> Database >  >> RDS >> Mysql

Hoe maak je een genest menu van MySQL met PHP?

Dit is specifiek voor twee niveaus diep. Aanbevolen aanpak als het meer is, is het gebruik van een geoptimaliseerde tabelstructuur voor traversal, zoals http://articles.sitepoint.com/article/hierarchical-data-database/2 (elders aangegeven) of om de gegevens die u nodig hebt op te halen en in een woordenboek (associatieve array) te duwen en op die manier te doorzoeken.

<?php
    $query = <<<EOT
        SELECT
            parent.name as parent_name,
            child.name as child_name,
        FROM
            items child
        INNER JOIN
            items parent
        ON
            child.parent_id = parent.id
        ORDER BY
            parent.name
EOT;

    $result = mysql_query($query) or die('Failure!');

    echo "<ul id=\"catmenu\">";

    $last_parent = '';
    while($row = mysql_fetch_array($result)){
        // If this is a new category, start a new one
        if($last_parent != $row['parent_name']){
            // Unless this is the first item, close the last category
            if($last_parent != ''){
                echo "</ul></li>";
            }
            $last_parent = $row['parent_name'];
            echo "<li class=\"menulist\">{$row['parent_name']}<ul>";
        }
        echo "<li>{$row['child_name']}</li>";
    }

    // If we actually had items, close the "category"
    if($last_parent != ''){
        echo "</ul></li>";
    }

    echo "</ul>";

?>


  1. Verbind SQL Server met SugarCRM

  2. Bericht weergeven wanneer er geen resultaten zijn gevonden in PHP MySQL-zoekopdracht

  3. Is er een truc om MySQL toe te staan ​​een volgkomma in de SET-clausule van een UPDATE-instructie te negeren?

  4. PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR in Node-MySqL