ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
260
260
EMPFEHLEN
-
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:Code :1 2 3 4 5 6 7 8 9
+---------+---------+---------+------+-----+ | 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 | +---------+---------+---------+------+-----+
Als Ergebnis erhalte ich dies: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' ];
}
}
Aber sollte nicht eigentlich dies dabei heraus kommen?Code :1 2 3 4 5 6
A |- B |- C |- D |-E |-F
Wo liegt mein Fehler und wie kann ich den bereinigen?Code :1 2 3 4 5 6
A |- B |- C |- D E |-F
Gruß,
Arndtinho
-
17.11.04 19:59 #2
- Registriert seit
- Jan 2004
- Beiträge
- 1.072
Die Anzahl der <ul> bzw. </ul> hängt von dem Unterschied der Levels von zwei aufeinanderfolgenden Datensätzen ab.
Sprich wenn ein Datensatz in Level 3 ist, und der nächste in Level 1, brauchst du 2 mal </ul>. Es kommt also auf die Differenzan.PHP-Code:$row[ 'level' ] - $i
-
Moin,
ich stelle gerade fest, das mein offenes <ul> gar nicht geschlossen wird.
Gruß,
Arndtinho
-
18.11.04 12:37 #4
Hallöchen!
hm ? aber du hattest dein <ul> doch geschlossen
hier.....
Liebe Grüße,PHP-Code:if( $row[ 'level' ] < $i ) {
echo "</ul>";
Benni
-
Aber das wird nicht ausgeführt. Die If-Anweisung wird gar nicht aufgerufen.
Gruß,
Arndtinho
-
18.11.04 14:13 #6
Hi nochmal !
Es kann ja auch nur ein Fall auftreten so wie ich das sehe!
Entweder
und es trifft nur der erste Fall zu also das mit dem > $i und somit wird <ul> nicht geschlossen.PHP-Code:if( $row[ 'level' ] > $i ){
echo "<ul>";
oder
if( $row[ 'level' ] < $i ){
echo "</ul>";
Liebe Grüße BenniGeändert von TomDelonge (18.11.04 um 14:15 Uhr)
ALL THE SMALL THINGS
-
das nur der erste Fall eintritt, habe ich ja festgestellt. Ich versuche gearde ne Lösung zu finden, das am Ende des Baumes der zweite Fall eintritt und somit die geöffneten <ul> geschlossen werden, damit die Threads ordentlich dargestellt werden.
Ähnliche Themen
-
Darstellungsproblem IE
Von scandic im Forum CSSAntworten: 18Letzter Beitrag: 04.07.08, 16:59 -
Darstellungsproblem
Von McNiko im Forum HTML & XHTMLAntworten: 9Letzter Beitrag: 01.07.08, 13:16 -
Darstellungsproblem mit IE 7
Von Wunder_von_Bern im Forum CSSAntworten: 6Letzter Beitrag: 28.06.08, 16:15 -
Darstellungsproblem IE
Von PasiXXL im Forum CSSAntworten: 2Letzter Beitrag: 20.07.07, 12:39 -
FF vs. IE: Darstellungsproblem
Von tadpole im Forum HTML & XHTMLAntworten: 4Letzter Beitrag: 03.10.05, 17:38





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren