Sönke Tesch: /mysql - Spalte von DB in Array einlesen

Beitrag lesen

Ich will eine Spalte meiner DB in ein Array einlesen. Dazu habe ich folgende Funktion geschrieben:

$sql = "SELECT keyval, ".$language."
           FROM uebersetzung";

$result = mysql_query($sql, $dbConnection);

while ($row = mysql_fetch_array($result)) {
     $t[$row['keyval']] = htmlspecialchars($row['$language']);
}
return $t;

Wenn ich nun im Hauptprogramm ein var_dump($t) mache wird "NULL" ausgegeben. Wo liegt das Problem. Ich weiß keinen Rat mehr.
Liegt das Problem vielleicht in dieser Zeile?

$t[$row['keyval']] = htmlspecialchars($row['$language']);

Eher nicht, denn dann würde $t zumindest ein Feld sein und nicht null. Der Wert null deutet eher darauf hin, daß der Inhalt Deiner while-Schleife garnicht nicht angesteuert wird, was wiederum eher auf ein leeres Ergebnis der Datenbankabfrage hinweist.

Wenn ich mir den SQL Befehl mit echo ausgebenlasse, sieht er genau so aus wie er sein soll.

Das bringt Dir absolut garnichts, nicht Du bestimmst letztenendes, was der Datenbank gefällt, sondern die Datenbank selber.

Hättest Du Dich an die PHP-Anleitung gehalten, würdest Du zumindest nicht blind darauf vertrauen, daß mysql_query() niemals schiefgeht und hättest eine korrekte Fehlerabfrage eingebaut. Wie das funktioniert ist auf der mysql_query()-Seite ausführlichst beschrieben, der Text zu mysql_error() hilft Dir ebenfalls.

Wenn Du diesen faux pas beseitigt hast und es keinen SQL-Fehler gibt, solltest Du mit var_dump() $row ausgeben und mysql_num_rows() prüfen, wieviele Datensätze es gibt. Dann hast Du sicher einen Anhaltspunkt, wo der Haken stecken könnte.

Gruß,
  soenk.e