Mailinglisten-Archive |
>
> > $result = mysql_query("SELECT * FROM sys_variablen");
> > $row = mysql_fetch_assoc($result);
> > foreach ($row AS $varname => $varvalue) {
> > $GLOBALS[$varname] = $varvalue;
> > }
> wieso hier mysql_fetch_assoc() und nicht mysql_fetch_array() oder
> _row()?
> Weil damit habe ich es versucht ... was ist der entscheidende
> Unterschied?
>
assoc macht aus dem Datensatz ein assoziatives Array.
Das heißt ein Array, welches dir assoziative Indizes (Strings),
also in dem Fall hier die Namen der Attribute (Tabellenspalte) liefert.
Unterschied zu _array():
Das liefert Dir standardmäßig sowohl Zahl-indizes als auch die
assoziativen (MYSQL_BOTH). Kann aber auch wie _assoc() (MYSQL_ASSOC)
oder nur Zahlen (MYSQL_NUM) als Indizes liefern.
Unterschied zu _row():
Die _array() und _assoc() bauen auf dieser Funktion auf. Aber...
Zitat aus dem Manual:
"Zu betonen ist, dass der Gebrauch von mysql_fetch_array() nicht
signifikant langsamer ist als mysql_fetch_row(), obwohl die Funktion
einen sichtlichen Mehrwert bietet."
Liefert Ergebnis wie _array() mit Ergebnistyp-Konstante MYSQL_NUM.
Wichtig für Dich ist, dass Du die Spaltennamen als Variablennamen
erhältst (Zahlen sind als erstes und damit als alleinige(s) Zeichen
für Variablen in PHP afaik ja nicht zulässig). Deshalb ist
_array() mit Ergebnistyp-Konstante MYSQL_ASSOC
oder halt
_assoc() zu benutzen.
Gruß
Dennis
php::bar PHP Wiki - Listenarchive