Sönke Tesch: php4 / Hompegage in 5 Sprachen

Beitrag lesen

wort   | de  | uk  | fr  | es  | it

apfel   Apfel | apple | ... |  ... | ...
banane  Banane | banana | ... |  ... | ...

Ich möchte die Tabelle dann einmal einlesen und alle Begriffe als assoziatives Array haben:

$transl['apfel']="apple";
$transl['banane']="banana";

Mit welche mysql Anweisung kann ich das machen?

Also, Du möchtest den Index (wort=>"apfel") und dazu das passende Wort ("apple", wenn Sprache "uk" ist) haben:

select wort,uk from monster_übersetzungen

"uk" ersetzt Du durch die jeweils gewünschte Sprache.

Beim Auslesen des Ergebnisses mußt Du dann lediglich die Werte entsprechend anwenden:

while ($daten=mysql_fetch_row($ergebnis))
    $transe[$daten[0]]=$daten[1];

Vielleicht im nachhinein bei eventueller Code-Wartung etwas weniger verwirrend:

select wort,uk as übesetzung from monster_übersetzungen

while ($daten=mysql_fetch_assoc($ergebnis))
    $transe[$daten["wort"]]=$daten["übersetzung"];

Die Benutzung von $daten["wort"] finde ich persönlich etwas übersichtlicher bzw. erklärender als $daten[0]. Außerdem geht bei Änderungen an der SQL-Klausel nicht gleich die Datenauswertung den Bach runter.

Gruß,
  soenk.e