phpbar.de logo

Mailinglisten-Archive

[php] Variablen aus DB verwenden

[php] Variablen aus DB verwenden

Dennis Sterzenbach lists at darknoise.de
Son Sep 28 14:14:43 CEST 2003


>
> > $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