Hallo Andreas,
Ich habe einen Abfragebedarf auf 3 Tabellen:
und diese unübersichtlich beschriftet:
aber dann doch verschönert:
Ich verwende MySQL-Version 3.23.52-log.
Folgendes soll die 3 Tabellen darstellen. Ich kann deren Aufbau nimmer ändern.
----------------------------- -------------------------------------------- -----------------
Tabelle_Bilder Tabelle_Bildertexte Tabelle_Sprachen
----------------------------- -------------------------------------------- -----------------
PicNr osname pxhoehe PicID Bildnr Text Sprache LangNr Kuerzel
[PRIMARY] [PRIMARY] [PRIMARY]
----------------------------- -------------------------------------------- -----------------
1 Kuh.jpg 400 1 1 Das ist eine Kuh 1 1 DE
2 Hund.jpg 450 2 1 This is a cow 2 2 EN
3 Schwein.jpg 500 3 3 Das ist ein Schwein 1
4 Gans 600 4 4 This is a goose 2 v
|
^ v ^ |
| | | |
| | | |
+--------------------------------------------+ +-------+
Ich habe Deinen Abfrageentwurf auf die (hoffentlich) übersichtlichere Tabelle umgeschrieben:
SELECT s.LangNr, s.Kuerzel, bi.PicNr, bitxt.BildNr,bi.osname, bi.pxhoehe, bi.pxbreite, bitxt.alttag, bitxt.title
FROM Bilder AS bi,Bildertexte AS bitxt,Sprachen AS s
WHERE
bi.osname = 'Schwein.jpg' <--- $a
AND s.Kuerzel = 'DE' <--- $b
AND bi.PicNr = bitxt.BildNr
AND bitxt.Sprache = s.LangNr
Leider mit gleichem Mißerfolg wie in manchen der vielen Postings zu diesem Thread.
Das Ergebnis der Abfrage oben ist
Array
(
[LangNr] => 1
[Kuerzel] => DE
[PicNr] => 214
[BildNr] => 214
[osname] => Schwein.jpg
[pxhoehe] => 11
[pxbreite] => 205
[alttag] => Das ist ein Schwein
[title] => Das ist ein Schwein
)
und das ist absolut korrekt. Ändere ich $b jedoch in 'EN', dann wird überhaupt kein Datensatz zurückgegeben. Korrekt wäre jedoch ein Datensatz. Die Felder aus Tabelle_Bilder müßten Werte enthalten (z.B. osname=Schwein.jpg ), die Felder aus Tabelle_Bildertexte müßten dann leer sein.
Wenn Du das letzte Posting von Ilja liest (15. September 2004, 18:49), dann meint er - sicher zu recht - daß das Tabellendesign schlecht wäre. Zumindest der Punkt a) seiner dortigen Erklärungen sind mir unklar.
Recht herzlichen Dank für Deine Bemühungen,
Viennamade