php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.09.2004, 00:02  
Gast
 
Beiträge: n/a
Standard Rekursive Funktion ... finde fehler nicht ...

Also ich habe grad ne winzig kleine Funktion geschrieben um alle übergeordnete Link Kategorien auszulesen.

Jetzt steh ich vor dem Problem, das zum schluss zwar das array richtig vorhanden ist, aber nicht return wird....hier mal den Quellcode:

PHP-Code:

    
function get_cat($id$cats){
        global 
$CDB,$db;
        
        
$CDB->newSQL("SELECT id,subid,name FROM ".$db["prefix"]["links_cat"].$db["table"]["links_cat"]." WHERE `id` = '".SQLSafeInt($id)."'");
        
        
$cat $CDB->fetcharray();
        
        
$cats[] = $cat;
        
        if(!empty(
$cat["subid"])){
            
get_cat($cat["subid"], $cats);
        }else{
            
ppr($cats);
            return 
$cats;
        }
    }    
    
    
$cat get_cat($_GET["id"], array());
        
ppr($cat); 
function ppr = Eine ausgabekoplung aus <pre> und print_r (bin schreibfaul)
function SQLSafeInt = führt wenn keine gültige Zahl kommt intval auf die Variable aus.
class CDB = Klasse zum verarbeiten von SQL-Querys. Mit newSQL wird der Klasse ein neuer SQL zugewiesen. Mit fetcharray wird mysql_fetch_assoc mit dem eingetragenen SQL-Query ausgeführt.

Ich suche jetzt schon die ganze zeit den Verfluchten Fehler....

Also hier mal das was ausgegeben wird:

PHP-Code:
#kommt von ppr($cats) innerhalb der function.
Array
(
    [
0] => Array
        (
            [
id] => 4
            
[subid] => 1
            
[name] => SubKat 1
        
)

    [
1] => Array
        (
            [
id] => 1
            
[subid] => 0
            
[name] => Kategorie 1
        
)

)

#hier sollte jetzt das selbe nochmal kommen, aber es wurde nix return also gibts auch nix... 
naja vieleicht bin ich auch einfach schon zu müde...

Edit: Der fehler tritt übrigens nur auf wenn die funktion Rekursive wird...also wenn er nur eine Kategorie auslies die keine sub ist gehts perfekt...
bestimm irgend son scheiss logikfehler den ich nicht mehr paller
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.09.2004, 03:44  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi.

Nimm das return aus dem else-Block raus.

Noch ein paar Tipps:

- Gib dem zweiten Parameter den dafault-Wer array(), dann brauchst du die Funktion nurnoch mit einem Parameter aufrufen - so macht es ja keinen Sinn.

- Schau dir mal die Schleife do {} while () an. Die ist prädestiniert für sowas.

- Vor allem bei speicherintensiveren Geschichten ist es geschickter, nicht in jeden weiteren Funktionsaufruf das ganze Daten-Array hineinzukopieren. Besser ist es, du übergibst der Funktion einfach immer nur die ID und nur gibst das Ergebnis-Array des gerade bearbeiteten Baumastes zurück und packt diesen jeweils mit array_merge() zusammen oder legst den ganzen Baum in eine statische Variable oder übergibst ihn als Referenz.

Basti
Basti ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
Name der aufrufenden Funktion mAy^daY PHP Tipps 2007 5 20.01.2007 22:55
Fehler in rekursiver Funktion tinchen PHP Tipps 2006 1 27.08.2006 20:24
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
fehler in einer funktion imported_master PHP Tipps 2006 3 08.04.2006 21:10
[Erledigt] Zugriff auf eine Klasse innerhalb einer Funktion -&amp;amp;gt; Fehle PHP-Fortgeschrittene 23 05.02.2006 13:02
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
Problem mit einer rekursiven Funktion in einer Klasse ajo_silent PHP-Fortgeschrittene 6 13.06.2005 16:40
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
Hilfe - Rekursive Funktion PHP Tipps 2005 5 10.01.2005 22:19
mail funktion funzt net es kommt ein fehler phpfortgeschrittener PHP Tipps 2004 4 29.08.2004 01:07
LIMIT(?) Fehler Schaelle Datenbanken 0 28.08.2004 14:11
Rekursive Funktion tut nicht richtig??? PHP-Fortgeschrittene 8 09.07.2004 15:39

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php rekursives aufrufen funktion funktioniert nicht, finde rekursive reihe tipp, cat rekursiv, google php rekursion, php rekursiv funktionsaufruf, rekursive funktion, php rekursive funktion css klasse, rekursive funktion i, php problem rekrusive function gibt return nicht wieder, rekursion php fehler, php funktion rekursiv aufrufen und array übergeben, php statischen funktion rekursiv aufrufen, php return in rekursion funktioniert nicht, rekursive schleife dbs, komplizierte rekursive funktionen, sqlsafeint, php rekursiver aufruf, php klasse rekursiv array, rekursiv return php, rekursiver aufruf funktioniert nicht php

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.