php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.10.2010, 08:35  
Erfahrener Benutzer
 
Registriert seit: 22.03.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
tarian befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Rekursiver Funktionsaufruf liefert nicht gewünschtes Ergebnis

Hallo,

leider fiel mir kein aussagekräftigerer Name ein, wenn einer der Mods eine Idee hat kann er den Titel gerne ändern

Ich habe folgende Funktion:

PHP-Code:
  private function elements($siteID$elementID=null) {
        
$database Database::getInstance();
        if (empty(
$elementID))
            
$elements $database->SelectStatement('RND_ELEMENT''*''where SITEID = ' $siteID ' AND PARENT IS NULL');
        else {
            
$elements $database->SelectStatement('RND_ELEMENT''*''where SITEID = ' $siteID ' AND PARENT = ' $elementID ' ');
        }
        if (!empty(
$elements['ID'])) {
            
$newElement null;
            for (
$i 0$i count($elements['ID']); $i++) {
                
$newElement $this->CreateElement($elements['TYPE'][$i], $elements['NAME'][$i]);
                foreach (
$elements as $key => $element) {
                    
$newElement->setAttribute(strtolower($key), $element[$i]);
                }
                
$newElement->addElement($this->elements($siteID$elements['ID'][$i]));
            }
            return 
$newElement;
        }
    } 
dazu gibt es eine Tabelle die derzeit in etwa so aussieht:

ID | Name | ... | Parent

Parent gibt an welche Elemente untereinander abhängig sind d.h. es gibt eine Textbox die in einer Group ist. Also hat die Textbox die ID der Group als Parent.

Leider funktioniert aber der Abruf der Childelemente nicht wenn es mehr als eines ist. Er scheint aus der Zählschlife raus zu springen.

Vielleicht hat hier einer einen Geistesblitz.

Gruß

Geändert von tarian (12.10.2010 um 08:40 Uhr).
tarian ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.10.2010, 08:45  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

ich kenn zwar deine Datenbank-klasse nicht .. aber ich glaub du fragst das falsch ab ...

wenn ich das mit meiner Datenbank-Klasse abfragen würde. sähe das Array elements so aus
Code:
elements 
-> [0]
   -> ['ID']
   -> ['weiteres Attribut1']
   -> ['weiteres Attribut2']
-> [1]
   -> ['ID']
   -> ['weiteres Attribut1']
   -> ['weiteres Attribut2']
...
entsprechend wäre bei mir die Anzahl der Elemente count($elements) - ich vermute bei dir sowas ähnliches ...

mach doch mal nen var_dump($elements);echo "<br>";
zwischen deine Abfrage und die Ausgabe-schleife

die Ausgabe des var_dump ist natürlich besonders interessant, für den Fall dass mehrere Child-elemente geliefert werden ...
eagle275 ist offline   Mit Zitat antworten
Alt 12.10.2010, 08:49  
Benutzer
 
Registriert seit: 18.02.2010
Beiträge: 54
PHP-Kenntnisse:
Fortgeschritten
Codercrush ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von tarian Beitrag anzeigen
Hallo,
PHP-Code:
 if (!empty($elements['ID'])) {
            
$newElement null;
            for (
$i 0$i count($elements['ID']); $i++) {
                
$newElement $this->CreateElement($elements['TYPE'][$i], $elements['NAME'][$i]);
                foreach (
$elements as $key => $element) {
                    
$newElement->setAttribute(strtolower($key), $element[$i]);
                }
                
$newElement->addElement($this->elements($siteID$elements['ID'][$i]));
            }
            return 
$newElement;
        }
    } 
Kann sein das ich mich irre, aber du überschreibst doch bei jedem Schleifendurchlauf der "for"-Schleife die Variable "$newElement", dass du dann nach der Schleife zurücklieferst ...
__________________
Ich würde so gern die Welt verändern doch Gott gibt mir den Quellcode nicht.
Compiler sind wie Franzosen.. schnauzen einen immer nur an, wenn man ihre Sprache nich perfekt spricht.
Codercrush ist offline   Mit Zitat antworten
Alt 12.10.2010, 08:56  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

jup .. da musst du dir was einfallen lassen -

hab ich doch glatt übersehen ...
eagle275 ist offline   Mit Zitat antworten
Alt 12.10.2010, 09:14  
Erfahrener Benutzer
 
Registriert seit: 22.03.2009
Beiträge: 109
PHP-Kenntnisse:
Fortgeschritten
tarian befindet sich auf einem aufstrebenden Ast
Standard

Ja ihr habt Recht. Das hätte mir auch selber auffallen können.
tarian 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
[Erledigt] Zeichensatzeinstellungen bringen nicht gewünschtes Ergebnis Tandibur PHP Tipps 2010 6 09.10.2010 21:16
Rekursiver Funktionsaufruf funktioniert nicht (Fakultät) Prof.P PHP Tipps 2010 40 01.09.2010 20:10
nbtstat liefert kein Ergebnis Root-2k PHP Tipps 2010 5 06.06.2010 13:31
weitere if-Abfrage liefert kein Ergebnis evimartin PHP Tipps 2009 11 17.09.2009 13:52
[Erledigt] Abfrage liefert kein Ergebnis nofear87 Datenbanken 7 06.11.2008 16:00
Rekursiver Funktionsaufruf Leonhard PHP Tipps 2008 6 13.05.2008 10:17
Volltextsuche liefert kein Ergebnis xarok PHP Tipps 2007 10 02.01.2007 13:44
http_build_query() liefert falsches ergebnis? Promaetheus PHP Tipps 2006 8 09.11.2006 23:09
strpos() liefert kein Ergebnis PHP Tipps 2006 2 02.04.2006 20:09
Überprüfung ob Afrage Ergebnis liefert PHP Tipps 2007 4 21.11.2005 15:54
nl2br produziert nicht gewünschtes Ergebnis PHP Tipps 2007 3 09.11.2005 22:55
SQL liefert falsches Ergebnis Plague Datenbanken 2 29.09.2005 22:45
get_cfg_var liefert kein Ergebnis zurück PHP Tipps 2005 3 05.01.2005 13:31
is_dir liefert falsches Ergebnis PHP-Fortgeschrittene 9 05.11.2004 16:11
distinct liefert falsches Ergebnis! PHP Tipps 2004 4 03.07.2004 20:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
funktionsaufruf klasse php, php rekursiver funktionsaufruf innerhalb klasse, php rekursiver funktionsaufruf, rekursive funktion rückgabewert, createelement php rekursiv, foreach funktionsaufruf, rekursiver funktionsaufruf, php return in rekursiver funktion, php innerhalb foreach weiterer funktionsaufruf, rekursiver funktionsaufruf php, wenn datenbamnk ergebnis liefert, php rekursiver funktionsaufruf array, function php return liefert nichts zurück

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:36 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