Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
SQL Order by abfrage [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
SQL Order by abfrage


 
McMuh
14-06-2005, 14:41 
 
Ich habe eine Tabelle, in der Kategorien stehen. Sie sieht ungefähr so aus:


- id - name - level - position - parent
1 test 0 1 0
2 test 1 1 10
4 test 2 1 2
3 test 0 2 0
7 test 1 2 3
8 test 2 2 7
5 test 0 3 0
9 test 2 3 7
10 test 0 4 0
11 test 0 5 0
20 test 0 6 0
21 test 0 7 0


Nun will ich diese Tabelle ausgeben lassen, und zwar, mit allen unterleveln, beginnd bei level 0.
D.h. erst kommt id 1, dann - da 1 keine unterkategorie hat, welches durch ein parent einer anderen Zeile festgelegt würde - kommt id 3. Nun folgt eine Unterkategorie, id 7, da ihr parent die aktuelle id ist, und sie in level 1 steht. es folgen id 8 und 9, da sie eine unterkategorie von 7 sind, usw...

Das ist eine ziemlich heftige struktur, aber es lässt sich jede position eindeutig beschreiben.

Nunr die Frage: Ich lasse dies zZ über eine Funktion in PHP ausgeben, würde dies aber lieber kompakt in eine SQL abfrage quetschen.
Ich denke mal, dass es nicht möglich ist, lasse mich aber gerne eines besseren belehren ;-)

Vielen Dank - McMuh

 
onemorenerd
14-06-2005, 15:04 
 
Original geschrieben von McMuh
Das ist eine ziemlich heftige struktur, aber es lässt sich jede position eindeutig beschreiben.

Soll dazu position da sein? Wenn nicht, wozu dann?

 
McMuh
14-06-2005, 15:11 
 
"position" stellt nur die position innerhalb des levels und der parent-id dar. Um es zu verdeutlichen die komplette ausgabe. Die levels werden durch einrücken kenntlich gemacht:


- id -
E1 E2 E3 = Ebene 1, 2 und 3
1
3
7
8
9
5
10
2
4
11
20
21

so soll es einfach untereinander weg ausgegeben werden.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:18 Uhr.