phpbar.de logo

Mailinglisten-Archive

AW: [php] Rekursion in PHP (Kategorien,Unterkategorien)

AW: [php] Rekursion in PHP (Kategorien,Unterkategorien)

michael schoenboeck php_(at)_phpcenter.de
Fri, 18 Oct 2002 12:48:23 +0200


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">&nbsp;';
> 		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