sql >> Database teknologi >  >> RDS >> Mysql

Hvordan opretter man en indlejret menu fra MySQL med PHP?

Dette er specifikt for to niveauer dybt. Den anbefalede tilgang, hvis det skulle være mere, er at bruge en optimeret tabelstruktur til gennemkøring, såsom http://articles.sitepoint.com/article/hierarchical-data-database/2 (påpeget andetsteds) eller for at trække de data, du har brug for, og skubbe dem ind i en ordbog (associativt array) og forespørge det på den måde.

<?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. Transform ODBC-data i CloverDX

  2. Vis hver DISTINCT-feltværdi kun én gang ved brug af loop

  3. Hvilken procentdel af brugerne deltog på hver dag (SQL-forespørgsel)

  4. Oracle indsæt fra vælg i tabel med flere kolonner