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