Je mehr Felder eine Tabelle hat, umso umständlicher wird die Auswertung der Abfrage nach der üblichen Methode. Die sieht normalerweise so aus:
<?
$result = mysql_query(„SELECT * FROM meinetabelle“);
While ($row = mysql_fetch_array($result)) {
// Hier beginnt die Wertzuweisung
$field1 = $row[“field1”];
$field2 = $row[“field2”];
$field3 = $row[“field3”];
$field4 = $row[“field4”];
$field5 = $row[“field5”];
// Hier beginnt die Ausgabe
echo $field1.”, ”. $field2.”, ”. $field3.”, ”. $field4.”, ”. $field5.” <br />“;
}
?>
Die Wertzuweisung aus dem Abfrageergebnis lässt sich aber auch automatisieren. Das Script sieht dann so aus:
<?
$result = mysql_query(„SELECT * FROM meinetabelle“);
While ($row = mysql_fetch_array($result)) {
// Hier beginnt die Wertzuweisung
$j = mysql_num_fields ($result);
for ($i=0; $i < $j; $i++) {
$k = mysql_field_name ($result, $i);
$$k = $row[$k];
}
// Hier beginnt die Ausgabe
echo $field1.”, ”. $field2.”, ”. $field3.”, ”. $field4.”, ”. $field5.” <br />“;
}
?>
In $k steht dabei jeweils der Feldname. Mit dem Konstrukt $$k = mysql_field_name($result, $i); wird nicht der Variable selbst, sondern ihrem Inhalt, also dem jeweiligen Feldnamen der Wert zugeordnet.
Schon bei diesem Beispiel mit 5 Feldern in der Datenbank sieht man, dass mit der Automatik eine Zeile weniger zu schreiben ist als mit der Standardmethode. Für jedes weitere Datenfeld in der Tabelle kommt bei der Standardmethode eine Zeile Code dazu, während die automatische Methode mit beliebig vielen Feldern arbeitet, ohne dass man noch eine Zeile Code dazuschreiben muss.