phpbar.de logo

Mailinglisten-Archive

[php] Rekursion in PHP (Kategorien,Unterkategorien)

[php] Rekursion in PHP (Kategorien,Unterkategorien)

Frank Liebelt php_(at)_phpcenter.de
Fri, 18 Oct 2002 21:37:58 +0200


Hallo

Schau Dir mal den WebShop "oscommerce" an. Ehemals The Exchange Project.
http://www.oscommerce.com/
Die machen meiner Meinung nach genau das, was Du suchst.

Um zu sehen, wie das Menü aussieht, kannst Du ja mal bei
http://shop.second-designer.de vorbeischauen!!!

Mit freundlichen Grüßen
Frank Liebelt


> -----Original Message-----
> From: php-admin_(at)_phpcenter.de [mailto:php-admin_(at)_phpcenter.de]
> On Behalf Of Patrick Schuster
> Sent: Friday, October 18, 2002 11:34 AM
> To: php_(at)_phpcenter.de
> Subject: [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