|
Weniger Schreibarbeit mit SQL Abfragen
von Wolfgang
Arnberger
Um das Ergebnis einer SELECT Abfrage in Variable zu
schreiben, können Sie folgendermaßen vorgehen:
<?php
$result = mysql_query("SELECT * FROM tabelle WHERE bedingung");
while($row = mysql_fetch_array($result)) {
// Ergebnis in
Variable schreiben
$feld1 = $row["feld1"];
$feld2 = $row["feld2"];
$feld3 = $row["feld3"]; // u.s.w.
// Daten anzeigen
echo $feld1.", ".$feld2.", ".$feld3."<BR>";
}
?>
Diese Vorgangsweise führt zu erheblicher Schreibarbeit.
Immer wieder schreibt man Code wie "$feld = $row["feld"];".
Besonders bei längeren Feldlisten ist das lästig.
Alternativ kann man so vorgehen:
<?php
$result = mysql_query("SELECT * FROM tabelle WHERE bedingung");
while($row = mysql_fetch_array($result)) {
// Anzahl der
Felder ermitteln
$j = mysql_num_fields($result);
for($i=0;$i<$j;$i++) {
// Name des aktuellen Feldes ermitteln
$k = mysql_field_name($result,$i);
// Dem Feldnamen einen Wert zuweisen
$$k = $row[$k];
}
// Daten anzeigen
echo $feld1.", ".$feld2.", ".feld3."<BR>";
}
?>
Diesen Code muß man nur mehr in das Script kopieren,
die SQL-Abfrage eintragen und kann sich die ganze Schreibarbeit
mit "$feld = $row["feld"];" ersparen.
In der Variablen $j wird die Anzahl der Felder gespeichert.
Anschließend wird mit der for-Schleife jedes Feld angesprochen.
Dabei wird der Name des jeweiligen Feldes in $k gespeichert.
Man kann jetzt natürlich nicht der Variablen $k den
Wert aus $row[...] zuweisen, da man damit den Namen
des Feldes überschreiben würde. Um den Inhalt der Variablen
$k als Variablennamen zu verwenden und diesem Inhalt
einen Wert zuzuweisen, schreibt man $$k = $row[...].
Damit wird nicht die Variable $k sondern der Inhalt
der Variablen $k angesprochen.
|