Hallo,
ich habe es nun endlich geschafft SqlBäume mit Nested Sets zu erstellen. Doch jetzt scheitert es an der Darstellung mehrer Rootpostings.
Hier ist die DB-Struktur:
Die Funktion, welche die Threads darstellen soll, sieht so aus:
Als Ergebnis erhalte ich dies:
Aber sollte nicht eigentlich dies dabei heraus kommen?
Wo liegt mein Fehler und wie kann ich den bereinigen?
Gruß,
Arndtinho
ich habe es nun endlich geschafft SqlBäume mit Nested Sets zu erstellen. Doch jetzt scheitert es an der Darstellung mehrer Rootpostings.
Hier ist die DB-Struktur:
Code:
+---------+---------+---------+------+-----+ | node_id | root_id | payload | lft | rgt | +---------+---------+---------+------+-----+ | 1 | 1 | A | 1 | 6 | | 2 | 1 | B | 2 | 5 | | 3 | 1 | C | 3 | 4 | | 4 | 2 | D | 1 | 4 | | 5 | 2 | E | 2 | 3 | +---------+---------+---------+------+-----+
PHP-Code:
$roots = selRoots();
foreach( $roots as $root_id ) {
$sql = "SELECT node1.payload, COUNT(*) AS level, node1.node_id AS id ";
$sql .= "FROM node AS node1, node AS node2 ";
$sql .= "WHERE node1.root_id = ".$root_id." AND node2.root_id = ".$root_id." AND node1.lft BETWEEN node2.lft AND node2.rgt ";
$sql .= "GROUP BY node1.lft";
$res = mysql_query( $sql );
$i = 0;
// Anzeige der Threads
///////////////////////
while( $row = mysql_fetch_array( $res ) ) {
if( $row[ 'level' ] > $i ) {
echo "<ul>";
}
echo "<li><a href=\"test2.php?id=".$row[ 'id' ]."\">".$row[ 'payload' ]."</a></li>";
if( $row[ 'level' ] < $i ) {
echo "</ul>";
}
$i = $row[ 'level' ];
}
}
Code:
A |- B |- C |- D |-E
Code:
A |- B | |- C D |-E
Gruß,
Arndtinho
Kommentar