Mailinglisten-Archive |
hi, ich weis nicht ob das genau das ist was du suchst, aber ich hab sowas als linkverzeichniss ala Yahoo realisiert.. wo auch querverlinkungen (_(at)_) möglich sind.... ausschaun tut's so: der baum: http://digitalhome.mediapower.at/links/links.php oder so: http://digitalhome.mediapower.at/links/links2.php genauere erläuterung spar ich mir mal.... da ich in das verzeichniss http://digitalhome.mediapower.at/links/ die sourcen und das sql file zum testen deponiert hab. hoffe das hilft. SEEYA michael > -----Ursprüngliche Nachricht----- > Von: php-admin_(at)_phpcenter.de [mailto:php-admin_(at)_phpcenter.de]Im Auftrag > von Patrick Schuster > Gesendet: Freitag, 18. Oktober 2002 11:34 > An: php_(at)_phpcenter.de > Betreff: [php] Rekursion in PHP (Kategorien,Unterkategorien) > > > Hallo Leute, > > Hier mal wieder eine Deksportaufgabe damit der Freitag shneller vorbei > geht :-)) > > Ich will im Prinzip ein Warengruppen-Admin-Tool für einen Onlineshop > schreiben. > Dabei habe ich folgende Tabelle: > > CatID : CatPID : Name > --------------------- > 1 : NULL : Cat-1 > 2 : NULL : Cat-2 > 3 : 1 : Cat-1-1 > 4 : 1 : Cat-1-2 > 5 : 4 : Cat-1-2-1 > 6 : 2 : Cat-2-1 > > u.s.w., also CatID ist die Eindeutige ID, CatPID jeweils die ID des > Vaterknotens... > > Cat-1 > Cat-1-1 > Cat-1-2 > Cat-1-2-1 > Cat-2 > Cat-2-1 > > Nun will ich eine Ausgabe in der Form, dass am Anfang alle Einträge mit > CatPID = NULL untereinander stehen (also hier nur Cat-1 und Cat-2). > Klickt man nun auf einen dieser Links (es soll als Parameter nur die > eindeutige CatID übergeben werden), soll exakt dieser Ast ein Level > weiter aufklappen (also nicht alles), dann kann ich bei dem > aufgeklappten Ast wieder klicken und es soll noch exakt ein Level weiter > aufgeklappt werden u.s.w. (selbstverständlich soll die Tiefe insgesamt > beliebig sein). Wenn man dann auf einen anderen Ast (z.B. Cat-2) klickt, > wird der ursprüngliche natürlich wieder eingeklappt und der gewählte > klappt sich jeweils um ein Level aus. > > Nun hab ich es nach etwas basteln zwar geschafft, eine Rekursion zu > schreiben (Skript siehe unten), die mir den Baum ausgibt, allerdings > sind alle Ebenen bereits ausgeklappt. Und genau das will ich ja nicht, > da es bei z.B. 100 Unterkategorien schon sehr unübersichtlich wird. > Was mir nicht geholfen hat, sind fertige Scripts alla Ulf Wendl, da hier > die Originaldaten und das Handling zu verschieden sind. > > Hat jemand was passendes für mein Problem auf Lager oder ein paar > Anregungen?? > > P.S.: Falls jemand den Artikel/Warengruppen-Editor vom Schlund-Shop > kennen sollte - genau so solls nachher aussehen :-) > > >>>>>>>>> Skript on <<<<<<<<<< > > function get_AllCats($CatID=""){ > if (empty($CatID)) { > $sql = "SELECT CatID,CatPID,CatName from categories > where CatPID is NULL"; > } else { > $sql = "SELECT CatID,CatPID,CatName from categories > where CatPID = '$CatID'"; > } > $results = mysql_query($sql); > if(empty($results)) { > mysql_free_result($results); > return false; > } > while ($row = mysql_fetch_array($results)){ > $id = $row["CatID"]; > $pid = $row["CatPID"]; > echo get_CatLevel($id,0); > echo '<img src="pics/spacer_short.gif" > align="absmiddle"><img src="pics/fc_grau.gif" align="absmiddle"> '; > echo "<font face='Arial' size=2><a href='$id'>"; > echo get_CatNameFromID($id); > echo "</a></font><br>"; > get_AllCats($id); > } > return true; > } > > get_AllCats(); > > >>>>>>>>> Skript off <<<<<<<<<< > > Vielen Dank im voraus > Patrick > -- > ** http://www.php-center.de ** > Die PHP-Liste: mailto: php_(at)_phpcenter.de > http://lists.phpcenter.de/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive