phpbar.de logo

Mailinglisten-Archive

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

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

Wolfgang Hauck php_(at)_phpcenter.de
Fri, 18 Oct 2002 12:00:52 +0200


Patrick wrote:
>Hallo Leute,

>Hier mal wieder eine Deksportaufgabe damit der Freitag shneller vorbei
>geht :-))

Aber nur wenns Sinn macht....

>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...

Machen kann man das so schon....

>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...
[...]
>Nun hab ich es nach etwas basteln zwar geschafft, eine Rekursion zu
>schreiben (Skript siehe unten),

Die mit Abstand schlechteste Idee ist es, verkettete Listen mit Rückwärts-
bzw. Vorwärtsreferenzen in der Datenbank zu erzeugen und ebenfalls rekursiv
für jeden Knoten eines vermeintlichen SQL-Baumes eine separate Query an die
Datenbank abzusetzen.
Solange der darzustellende Baum klein bleibt, werden Performanceverluste
nicht augenscheinlich und fallen nicht ins Gewicht, aber bei größerer
Datenmengen wird die Datenbank bei diesem Verfahren zwangsläufig in die
Knie gehen müssen, da hunderte von Queries den Server verstopfen können.

Nie rekursive Queries an die Datenbank absetzen, wenn es sich vermeiden
lässt.

>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??

Hi Patrick,

Bevor wir uns mit nun mit ineffizienten php - Scripts den Freitag vermiesen
empfehle ich dir folgenden Link:

http://develnet.org/tech/tutorials/3.1.html

Ich denke das dürfte deinem Problem sehr nahe kommen ;-))

MFG Wolfgang


php::bar PHP Wiki   -   Listenarchive