Moin!
Ich möchte aus verschiedenen PHP-Scripts MySQL-Datenbanken aufrufen. Die Daten sollen in Variablen mit selbstsprechenden Namen abgespeichert werden. Um nicht immer wieder schreiben zu müssen:
$datensatz = mysql_fetch_row( ... );
$vorname = $datensatz[0];
$nachname = $datensatz[1];
$strasse = $datensatz[2];
möchte ich eine Funktion, die mir aus dem (nichtassoziativen) Array die Werte holt, also quasi
eingeneFunktion_getRow($vorname, $nachname, $strasse);
Wenn du einfach ein assoziatives Array verwenden würdest, wäre deine Aufgabe schon geschafft - und würde ziemlich viel Aufwand sparen, IMO.
Statt
eigeneFunktion_getRow($vorname, $nachname, $strasse);
echo "$vorname $nachname $strasse";
machst du einfach folgendes:
mysql_fetch_array($werte);
echo "{$werte['vorname']} {$werte['nachname']} {$werte['strasse']}";
Funktioniert prima, spart einen Funktionsaufruf, bastelt nicht aus einer Funktion heraus an globalen Variablen herum (das ist immer böse) und enthält sprechende Namen. Bei Änderungen an der Datenbank (insbesondere bei Änderungen der Reihenfolge der Felder im Ergebnis) wird deine Ausgabe auch nicht durcheinandergeworfen, weil die erste Spalte plötzlich vom Vornamen zur Strasse geworden ist - allein der Spaltenname entscheidet. Und wenn es den nicht mehr gibt, kriegst du auch keine Ausgabe - du gibst also keine Informationen aus, die rein zufällig in der ersten Spalte stehen (wie z.B. ein Passwort). Kann ja auch immer mal sein, dass du aus irgendwelchen Gründen die falsche Tabelle befragst oder sonst irgendwas schiefläuft.
- Sven Rautenberg