Hallo alex,
ich benutze php und mysql
sehr gut :-) ich auch
irgendwie ein query mit allen datensätzen bekommen, wo parent_id = 0 ist. Dann liest du sie einzeln durch und fragst zu jeder neu die datenbank ab, wo parent_id = menu_id ist. Und dann listest du das halt auf.
So einfach ist es.
Sort by sortierung natürlich, ok.
ich brauche dann also 2 select-anfragen?
genau. Und wenn du das, was ich geschrieben habe, also nun auf PHP überträgst, könnte das ganz simpel ungefähr so aussehen:
Einfache Menüdarstellung in einer <ul>:
<ul>
<?
// DB ist jetzt schonmal connected :-)
$firstnode = mysql_query("SELECT * FROM deinedb WHERE parent_id = 0 SORT BY sortierung");
while($thisnode = mysql_fetch_assoc($firstnode)) // mysql_fetch_row ist ansonsten schneller
{
print "<li>Punkt ".$thisnode["sortierung"].": <b>".$thisnode["label"]."</b><ul>";
$childnodes = mysql_query("SELECT * FROM deinedb WHERE parent_id = ".$thisnode["menu_id"]." SORT BY sortierung");
while($tnode = mysql_fetch_assoc($childnodes))
print "<li>".$tnode["label"]."</li">; //..... etc. etc.
print "</ul></li>"
}
?>
</ul>
Naja, Tippfehler sind bestimmt viele drin, und ich gehe jetzt immer davon aus, dass jedes Element 1.ebene in deiner db immer "kindknoten" hat, muss eben net sein, musst du eben überprüfen (durch weitere querys)
Ist auch nur ein Denkanstoß für dich, mehr nicht.
Hannes