Hallo
vielleicht habe ich "COALESCE" nicht ganz verstanden,
sehr wahrscheinlich.
aber bedeutet das nicht das ich unterschiedliche Spalten für die Sprache haben müsste?
Nein.
Ich habe aber nur eine Spalte für die Sprache und möchte ja nur andere Spaltenwerte selektieren und nur anhand der Sprache unterscheiden.
Ja, dafür nimmt man COALESCE().
$sql_info = $DBO->query("SELECT InfoName,InfoLabel FROM configinfo WHERE Language = '{$db_col_language}' ") ;
SELECT
InfoName,
InfoLabel,
COALESCE(Language, 'ENG')
FROM
configinfo
Fertig. Ausprobieren mit dem SQL-Client Deiner Wahl.
InfoName InfoLabel Language
Name1 Label1 ENG
Name2 Label2 ENG
NaDEU LabDEU DEU
Angenommen die Sprache des Users Fritz ($db_col_language) wäre DEU und es gibt keinen Eintrag mit der Zeile DEU sondern nur ENG.
?? was willst Du mir damit sagen.
Ich sehe keinen Fritz, ich habe keine Ahnung, was $db_col_language bedeutet, ich sehe keine zweite Tabelle.
Obige SELECT Abfrage würde dann bei mir nichts enthalten bzw. schlägt fehl.
Dann sollten Die Zeilen mit dem Default Wert ENG gelesen werden.
Wenn Du zwei Tabellen hast, nimm einen LEFT JOIN und COALESCE().
Freundliche Grüße
Vinzenz