php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.11.2011, 18:46  
Neuer Benutzer
 
Registriert seit: 09.01.2009
Beiträge: 8
milliway42 befindet sich auf einem aufstrebenden Ast
Standard Bedingte Auswahl aus 2ter Tabelle

Sorry falls die Frage etwas komisch ist, aber meine SQL-Kenntnisse würde ich als eher rudimentär einstufen

Mein Problem:
Ich habe eine Tabelle, aus der werden Länderinformationen (ISO-Code (=Landes_ID), ein Link, und ein paar weitere Daten) gezogen. Diese Informationen sollen in ein Array geladen werden. Das funktioniert auch problemlos.

Jetzt habe ich eine zweite Tabelle, in dieser sind die Ländernamen in vier verschiedenen Sprachen hinterlegt (de, en, es und fr).
Die Tabelle hat die Felder "Landes_ID", "Sprach_ID" und "Landesname".

Eine Abfrage in einer Sprache bekomme ich auch problemlos hin. Es wird dann der richtige Ländername (also in der richtigen Sprache) zu den richtigen Informationen geladen.

Nun zu meinem Problem:
Ich möchte für eine Administration dieses Datenbankfeldes die ein Array füllen, das zum einen die Informationen aus meiner Tabelle 1 enthält und die dazugehörigen vier verschiedenen Sprachen (z.B. mit dem Bezeichner "Landesname_de", "Landesname_en" etc.) abspeichert

Tabelle 1 ein sieht beispielsweise so aus:

ID Information
100 "Information zu Land 100"
104 "Information zu Land 104"

...

Tabelle 2 sieht nun so aus:
ID Sprach_ID Landesname
100 1 "Deutschland"
100 2 "Germany"
100 3 "Alemania"
104 1 "Frankreich"
104 2 "France"
104 3 "Frankia"


Ich möchte hinterher ein Array haben, in dem ich die Informationen alle zusammen habe:
ARRAY (ID, Information, Landesname_DE, Landesname_EN, Landesname_ES)

Wie mache ich das?!

Mein aktueller SQL-Befehl sieht so aus:
PHP-Code:
$countries_query_raw "SELECT c.countries_id, cl.countries_name, c.information from " TABLE_COUNTRIES " c left join " TABLE_COUNTRIES_LANGUAGES " cl on (c.countries_id = cl.countries_id) where cl.language_id = 1 order by cl.countries_name"
Ich hatte probiert:
PHP-Code:
$countries_query_raw "select c.countries_id, (cl.countries_name where language_id=1) as countries_name_de, (cl.countries_name where language_id=2) as countries_name_en, (cl.countries_name where language_id=3) as countries_name_es, c.information from " TABLE_COUNTRIES " c left join " TABLE_COUNTRIES_LANGUAGES " cl on (c.countries_id = cl.countries_id) order by countries_name_de"
Klappt aber nicht - und da verlassen mich meine Kenntnisse dann leider auch schon
milliway42 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.11.2011, 18:56  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.628
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Das wirst du nur mittels Subselect hinbekommen.

Aber denk erstmal drüber nach ob das Vorhaben sinnvoll ist. Was machst du wenn eine Sprache dazu kommt oder wegfällt? Immer dein Array anpassen?

Alternative:
Code:
SELECT 
   c.countries_id, 
   c.information, 
   GROUP_CONCAT(cl.countries_name SEPARATOR ' ') AS country_names
FROM " . TABLE_COUNTRIES . " c 
   LEFT JOIN " . TABLE_COUNTRIES_LANGUAGES . " cl 
   ON c.countries_id = cl.countries_id
WHERE
   cl.language_id = 1 order by cl.countries_name
GROUP BY c.countries_id
Ergebnis:
100 | Informationen zu Deutschland | Deutschland Germany Alemania

PHP seitig kannst du die Namen dann mit explode() auftrennen.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

Geändert von Dark Guardian (24.11.2011 um 19:03 Uhr).
Dark Guardian ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Ausgabe Tabellen dynamisch aus Tabelleninhalt erstellen titus81 Datenbanken 5 20.05.2011 19:58
Eine Tabelle, oder lieber mit zweite Tabelle arbeiten und diese Joinen? freshjayson Datenbanken 3 11.04.2011 13:04
[Erledigt] Ausgabe einer MySQL Tabelle umdrehen Index PHP Einsteiger 11 22.01.2011 19:42
Scriptsuche Daten aus HTML Tabelle A in HTML Tabelle B einfügen headbannger83 Scriptbörse 1 10.01.2011 15:39
HTML Tabelle Werte ändern -> direkt mit AJAX speichern Atikos JavaScript, Ajax und mehr 3 31.12.2010 01:15
Daten in Tabelle löschen nach Auswahl durch Radio Button dizzy Datenbanken 7 04.12.2010 02:37
Checkboxen mit Ausgabe als Tabelle endeinsicht PHP Tipps 2010 9 21.10.2010 22:14
Design einer DB für mehrsprachigkeit Squall Software-Design 35 08.10.2010 13:09
[Erledigt] MySQL Auswahl der vorhandenen IDs in einer Tabelle & dadurch auswahl ander Enra PHP Tipps 2009 11 20.03.2009 21:13
[Erledigt] dynamischer Drop Down als Auswahl für Tabellenwahl in MYSQL meshking PHP Tipps 2009 10 16.03.2009 15:15
Je nach Auswahl eine Tabelle aus einer Datenbank laden PHP Tipps 2005-2 0 05.08.2005 14:14
Je nach Auswahl eine Tabelle aus einer Datenbank laden PHP Tipps 2005-2 0 05.08.2005 14:14
select feld mit auswahl aus mysql tabelle PHP Tipps 2005 10 01.06.2005 14:17
Sortieren anhand einer zweiten Tabelle PHP Tipps 2004 6 20.09.2004 09:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql bedingter join, php bedingte auswahl, bedingte auswahl, php order by bedingt, mysql bedingter join

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:40 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum