Mailinglisten-Archive |
Hallo, Tomas
um so eine Alternative zu ermöglichen, muss Du das tabellen design (t1)
etwas verändern:
t1:
sheetid
sheetname
default_sheettext
im feld `default_sheettext` steht dann die Alternative in "default"-sprache
(X)
Die SQL-Query würde dann so aussehen:
SELECT
t1.sheetid,
t1.sheetname,
IF (t2.sheettext IS NOT NULL AND t2.sheettext != '',
t2.sheettext,
t1.default_sheettext
) as sheettext,
t2.lang
FROM t1
LEFT JOIN t2 ON (
t1.sheetid = t2.sheetid
AND t2.lang = "Y"
)
WHERE (t2.sheetid IS NULL OR t2.sheetid IS NOT NULL)
Regards
DV
Thomas Tschernich schrieb:
> Hallo Liste,
>
> Ich programmiere derzeit in PHP ein Script, bei dem ich ne Art
> automatische Sprachenwahl einbauen will. Dazu hab ich 2 Tabellen
> verfasst, einmal Tabelle t1, die nur die einzelnen Sheets definiert, und
> die Tabelle t2, die dann die einzelnen Strings in mehreren Sprachen
> enthält. Ich will erreichen, dass zu jedem Sheet der String vorzugsweise
> in der Sprache X gefunden wird, gibt es ihn aber (noch) nicht in dieser
> Sprache, soll er in der Standardsprache Y genommen werden. So sieht der
> JOIN bis jetzt aus:
>
> SELECT t1.sheetid, t1.sheetname, t2.sheettext, t2.lang FROM t1 LEFT JOIN
> t2 USING (sheetid) WHERE t2.lang = "X" OR t2.lang = "Y"
>
> Wie zu erwarten, liefert mir dieser Query aber 2 Entries, wenn der
> String in beiden Sprachen in der DB steht. Ich will aber nur einen. Es
> fehlt sowas wie ein XOR in MySQL (zumindest hab ichs sonst nicht
> gefunden. Hab auch schon ein wenig mit HAVING und GROUP BY rumprobiert,
> aber nix funktionierendes zu Stande bekommen.
>
> MfG,
> Thomas Tschernich
>
>
> --
> Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
> -->> http://www.4t2.com/mysql
>
--
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive