select wort,uk as übesetzung from monster_übersetzungen
»»
while ($daten=mysql_fetch_assoc($ergebnis))
$transe[$daten["wort"]]=$daten["übersetzung"];
$daten ist doch schon ein assoziatives Array in diesem Fall. Oder sehe ich das falsch? Könnte ich dann nicht einfach das Array $daten auf meiner Seite verwenden?
echo "He was eating an ".$daten['apfel'];
Nein, mysql_fetch_*() liefert immer nur _eine_ Zeile aus dem select-Ergebnis, und zwar (bei mysql_fetch_assoc bzw. _array) mit den Spaltennamen (!) als Indizes. Du bekommst in der Schleife oben also nacheinander:
1. Durchlauf: $daten["wort"]="apfel"; $daten["übersetzung"]="apple";
2. Durchlauf: $daten["wort"]="banane"; $daten["übersetzung"]="banana";
usw.
Um wie von Dir gewünscht den deutschen Namen als Index im Feld zu bekommen, muß das $transe-Feld her:
$transe[$daten["wort"]]=$daten["übersetzung"];
Aus dem Eintrag in $daten["wort"] wird also der Index, der dazu gehörende Wert kommt aus $daten["übersetzung"]. Nach der ersten $daten-Beispielzeile sieht es dann so aus:
$transe["apfel"] ="apple";
Gruß,
soenk.e