Moin!
$aReturn[][] = $myDB->f('s_name');
$aReturn[][] = $myDB->f('s_id');
Das ist natürlich Unsinn. Weil's sowohl den ersten als auch den zweiten Index beidesmal inkrementiert.
Der implizite Push-Operator [] ist zwar nett, er sollte allerdings vernünftig eingesetzt werden.
Insbesondere wenn am Ende das hier rauskommen soll:
echo $bar[$i][0]; // hier ist der inhalt von s_name
echo $bar[$i][1]; // hier ist der inhalt von s_id
Es ist sehr ungünstig, die Spalteninformation, die innerhalb der Klasse noch erhalten war (nämlich die Bezeichner "Name" und "ID") hier zu ersetzen durch anonyme Zahlenwerte, die in dieser Form keinerlei Bedeutung mehr haben. Es passiert viel zu leicht, dass durch ein Umbau anderswo sich plötzlich die Reihenfolge oder der Feldinhalt ändert, und es dadurch zu zunächst unbemerkten Problemen kommt.
Eine vernünftige Datenbankabfrage würde:
1. Explizit alle gewünschten Datenbankspalten auflisten (SELECT * ist verboten!).
2. Sofern notwendig, dann alle ermittelten Datenbankzeilen in einem Array zur Verfügung stellen, und dabei unbedingt die Spaltennamen erhalten.
3. Alternativ (schließlich sind hier ja Klassen am Werk) ein passendes Objekt zur Verfügung stellen, mit dem man anstelle des Arrays die Daten für eine Ausgabe abfragen kann.
Insbesondere Punkt 3 läßt sich ohne Kenntnis der bisherigen Klassenstruktur aber nur schwerlich weiter darstellen.
- Sven Rautenberg
"Love your nation - respect the others."