Datenbankabstraktion: Rekursive Funktion innerhalb von while()
Tilman Porschuetz
- php
Hallo liebe Gemeinde,
ich habe ...
while($row = foo_fetch_array($result)){
while($str = foo_fetch_array($result)){
... recursive
}
}
// ... das wie ...
while($str = mysql_fetch_array($result)){
...siehe oben
}
// ... behandelt werden soll.
Mein problem ist der array pointer, der mir sagt welchen block foo_fetch_array() bearbeiten soll. Ich habe damit kein problem wenns nur ein while mit foo_fetch_array() ohne ein recursives while *foo...* darin ist.
Sobald ich die selbe function zwsichen while und whileend aufrufe wird mein globaler counter zerhauen. ich muesste nun herrausfinden in welchem while loop sich die function befindet ohne externe variablen zu setzen. Sinn und Zweck: ich kann dann dynamische COunter in $GLOBALS[] setzen;
Klingt bestimmt ein wenig komisch und kompliziert, aber das ist es auch und ich habe keine ahnung wie man es realisieren sollte.(habe an nen globalen array gedacht, der die folge der while loops beinhaltet. klingt aber dumm)
Im PHP source code fuer Sachen wie each(),mysql_fetch_array() wird mit blocks und irgendwelchen startgroessen gewerkelt. Doch soweit ich das gesehen habe ist des mit classes und ausserdem ist es halt der richtige C-Sourcecode, welche denke ich mehr moeglichkeiten offen hat.
Vielleicht faellt euch was sinnvolles ein. Ich wuerde mich freuen.
Danke Tilman
Hallo Tilman,
ich hab versucht zu verstehn wohin Du willst, war dabei aber erfolglos. Was ist denn der eigentliche Sinn der Übung ?
Und was soll C-Sourcecode in PHP, wenn Du PHP programmierst nutz die Wege von PHP, und keine Angst vor objektorientierung wenn Du das mit Classes meinst, damit wird vieles viel übersichtlicher, leichter und schöner.
Gruss
Marko
Hallo Marko,
der sinn ist eine Struktur zu entwickeln die ...
while($row = mysql_fetch_array($result)) {
}
aehnelt.
Da dieses fetch_array immer nur ein element des array's aus $result behandelt muss ein counter global gesetzt werden. Dies geht wenn ich die fetch_array funktion nur einmal (innerhalb von while( ) ) aufrufe. Wuerde ich die selbe funktion nocheinmal waehrend while laeuft aufrufen, wird der counter kaputt gemacht. (unnuetz addiert, etc.)
Mit dem C-sourcecode meinte ich:
ich habe mir den sourcecode von each und mysql_fetch_array angeschaut, doch nicht verstanden, bzw keinen weg gesehen dass mit php zu simulieren.
Hilfe. =[ =] =[
Tilman
Danke fuers antworten.