wow, danach habe ich schon lange gesucht. Hast Du vielleicht auch noch eine Möglichkeit mit mehreren Alternativen.
if wert1 isnull dann wert2 wenn auch der isnull dann wert3 und wenn der isnull dann wert4
Besten Gruß
PHP Portal
» PHP Forum
» Entwicklung
» MySQL, PostgreSQL und SQL-konforme Datenbanken
» Mehrsprachigkeit - Fallback
» Antworten
Antwort erstellen
Code
1
2
3
4
5
6
7
2
3
4
5
6
7
select
t.name,
IF( ISNULL( ts.inhalt ), ts2.inhalt, ts.inhalt ) AS inhalt
from texte t
left join text_sprache ts on ( it.id = ts.texte_id AND ts.sprache_id = 'Nummer gesuchte Sprache' )
inner join text_sprache ts2 on ( it.id = ts2.texte_id AND ts2.sprache_id = 'Nummer Fallbacksprache' )
where t.name = 'gesuchter Wert'sollte funktionieren
sollte es nicht andersherum heißen? also erst die sprachversion nutzen, welche der user gewählt hat und erst dann auf den "default"-wert englisch wechseln?
wie auch immer ... versuche doch die sprach-tabelle mit sich selber zu join'en.
in der ersten spalte soll die wunsch-sprachversion des users hinterlegt werden, in der zweiten spalte die alternative. ist in der ersten spalte kein wert (evtl NULL), kannst du die alternative nutzen.
wie auch immer ... versuche doch die sprach-tabelle mit sich selber zu join'en.
in der ersten spalte soll die wunsch-sprachversion des users hinterlegt werden, in der zweiten spalte die alternative. ist in der ersten spalte kein wert (evtl NULL), kannst du die alternative nutzen.
Mehrsprachigkeit - Fallback
Hi,
kann mir jemand bei einer SQL-Abfrage helfen?
Ich möchte ein Projekt mehrsprachig machen, und habe mir dafür Tabellen angelegt
sprache (id, sprachname) - enthält (1,'deutsch'), (2, 'englisch')
texte (id, name, memo) - die verschiedenen Texte für das System (über den unique "name" abrufbar)
texte_sprache (sprache_id, texte_id, inhalt)
Wie muss dafür die SQL Anweisung aussehen, dass er automatisch den deutschen Text anzeigt,
wenn kein englischer Text vorhanden ist?
Meine aktuelle Anweisung sieht so aus:
kann mir jemand bei einer SQL-Abfrage helfen?
Ich möchte ein Projekt mehrsprachig machen, und habe mir dafür Tabellen angelegt
sprache (id, sprachname) - enthält (1,'deutsch'), (2, 'englisch')
texte (id, name, memo) - die verschiedenen Texte für das System (über den unique "name" abrufbar)
texte_sprache (sprache_id, texte_id, inhalt)
Wie muss dafür die SQL Anweisung aussehen, dass er automatisch den deutschen Text anzeigt,
wenn kein englischer Text vorhanden ist?
Meine aktuelle Anweisung sieht so aus:
Code
1
2
3
4
5
6
2
3
4
5
6
select
t.name, ts.inhalt
from texte t
inner join text_sprache ts on ( it.id = ts.texte_id )
inner join sprache s on ( ts.sprache_id = s.id )
where t.name = 'gesuchter Wert' and s.sprachname = 'deutsch'
Wie bekomme ich da jetzt das Englisch mit rein???