rekursive Funktion, um alle untergeordneten Kategorien zu erhalten

8

Hier ist, was ich versuche zu tun: - Ich brauche eine Funktion, die, wenn sie als Argument übergeben wird, eine ID (für eine Kategorie von Dingen) alle Unterkategorien und die Unter-Unterkategorien und Unter-Sub-Sub-etc. - Ich dachte, eine rekursive Funktion zu verwenden, da ich die Anzahl der Unterkategorien nicht kenne ihre Unter-Unterkategorien und so weiter also hier ist, was ich bisher versucht habe zu tun

%Vor%

Wenn ich return statt echo verwende, bekomme ich nicht das selbe Ergebnis. Ich brauche etwas Hilfe, um dies zu beheben oder es von Grund auf neu zu schreiben

    
user253530 07.03.2010, 23:15
quelle

7 Antworten

12

Ich hatte Mühe, Ihre Funktion herauszufinden. Ich denke, das wird tun, was du willst. Es bekommt alle Kinder einer Kategorie mit ID $ id, und auch ihre Kinder (wodurch die gesamte Unterkategorie, Unterkategorie Effekt, die Sie wollten).

%Vor%

Diese Funktion gibt zurück:

%Vor%

Es gibt im Grunde ein Array mit der ID des untergeordneten Elements und ein Array mit den IDs seiner untergeordneten Elemente zurück. Ich hoffe, das hilft irgendwie.

    
Bruno De Barros 07.03.2010, 23:28
quelle
4

Da dies von @Pawan Sharma angesprochen wurde, dachte ich, dass ich auch eine Antwort geben könnte.

Alle angegebenen Lösungen leiden unter einem gemeinsamen Problem - sie führen eine SQL-Abfrage für jedes Kind aus. Wenn z. B. 100 Kinder in der zweiten Ebene sind, werden 100 Abfragen durchgeführt, während dies in der einzelnen -Abfrage unter Verwendung von where parent_id in (<list_of_ids>) durchgeführt werden kann.

Beispiel DB:

%Vor%

Hier ist meine Lösung:

%Vor%

Mit den bereitgestellten Beispieldaten werden maximal 5 Abfragen ausgeführt, die als getTree(null) (für alle Einträge) bezeichnet werden:

%Vor%

Wenn sie als getTree(4) aufgerufen werden, werden 3 Abfragen ausgeführt:

%Vor%     
binaryLV 19.07.2011 07:26
quelle
1
%Vor%

Es ist perfekt. Wenn Sie brauchen, versuchen Sie dies bitte

    
Pawan Sharma 19.07.2011 06:36
quelle
1
%Vor%     
sven 30.07.2011 11:44
quelle
1
%Vor%     
Vikas Sharma 02.06.2017 17:55
quelle
0

Verwenden der Prestashop-Funktion:

%Vor%

Dies kann mit Rekursivität gemildert werden, aber keine Zeit dafür: '(

    
Karim Slamani 27.01.2015 09:35
quelle

Tags und Links