Einträge aus DB global verfügbar machen?

TinaX

Grünschnabel
Hallo!

Bin zufällig auf diese Seite gestoßen, hab ein paar Einträge gelesen und muss sagen: RESPEKT - hier wird geholfen :-)
Hab auch Ewigkeiten nach ähnlichen Problemen gesucht, nur ich tu mir da schon schwer, das gewünschte irgendwie in einen Suchbegriff zu packen...
Zu meinem Problem:
Ich eine php-Datei (phrasen.php) die ich in meine 2sprachige Seite include. Das sieht in etwa so aus:

Code:
if ($_SESSION[lang]=="de") {
$phrase_tel="Telefon";
$phrase_fax="Telefax";
$phrase_firma="Firma";
$phrase_email="Email-Adresse";
 
} elseif ($_SESSION[lang]=="en") {
$phrase_tel="Phone";
$phrase_fax="Fax";
$phrase_firma="Company";
$phrase_email="Email-Address";
}

So in etwa sieht das aus, nur ein wenig umfangreicher.
Abrufen tu ich z.B. per $phrase_tel:
Nun bin ich auf die Idee gekommen, daß man das ganze ja auch in eine Datenbank packen könnte - nur leider hab ich keine Idee, wie das funktionieren kann.

Also die Datenbank könnte so aufgebaut sein:

ID | phrase | de | en
1 | tel | Telefon | Phone
2 | fax | Telefax | Fax

usw...

Aber wie ruf ich das dynamisch ab und mach es global verfügbar?
Im Idealfall eben mit "$phrase_gewünschte_phrase", damit ich nicht die komplette Seite neu überarbeiten muss...

Wär für jeden Hinweis bzw. Lösungsansatz dankbar.
LG, TinaX
 
Du machst es einfach so wie du schon angefangen hast:

Tabellenstruktur: id, lang, phone,fax, ....

denn machst ne abfrage ala: "SELECT * FROM lang WHERE lang='".$_SESSION['lang']."'"

Eigentlich recht einfach.

Kleiner Tipp, ich würde die Sprachen aber in Dateien unterbringen da schneller, finde ich. ;)
 
Häää? Jetzt hast mich ein wenig verwirrt. :confused:

Also nochmal - Datenbankstruktur sieht so aus:
ID | phrase | de | en
1 | tel | Telefon | Phone
2 | fax | Telefax | Fax
usw... (bis jetzt ca. 150 Einträge)

Soviel ich weiß, muss ich nach einer Select-Anfrage die einzelnen Variablen definieren, d.h. z.B.
PHP:
$select_phrasen=mysql_query("SELECT phrase, $_SESSION[lang] FROM phrasen");
while ($phrasen=mysql_fetch_array($select_phrasen)) {
$phrase_tel=($phrasen[tel]);
$phrase_fax=($phrasen[fax]);
// usw...
}

Genau DAS möcht ich mir aber ersparen, da ich ziemlich viele Phrasen hab, die auch ständig erweitert werden.

Meine Idealvorstellung wär ein array, das den var-Namen und den dazugehörigen Eintrag automatisch bezieht sobald es aufgerufen wird:

PHP:
// $_SESSION[lang] ist entweder "de" oder "en"
 
$select_phrasen=mysql_query("SELECT phrase, $_SESSION[lang] FROM phrasen");
while ($phrasen=mysql_fetch_array($select_phrasen)) {
// so, und was muss ich jetzt HIER machen, damit ich nicht jede einzelne Variable
// definieren muss, sondern die Abfrage ganz genau weiß, daß wenn ich
// "$phrase_phrasennamen" eingebe, er diese Phrase aus der DB beziehen soll.
}

Hoffe, ich hab mich jetzt ein wenig klarer ausgedrückt...
THX for support, TinaX
 
Weiß denn niemand Rat? *schnüff* Kenn mich mit Arrays nicht gut aus, hab schon jede Menge probiert, nix hilft, bin wirklich am Verzweifeln mit diesem Problem.

Nochmal zur ergänzenden Erklärung: Ich hätte auch nix dagegen, wenn ich die Vars dann mit $phrasenarray[tel] oder so abrufen müßte. Aber ich hab mittlerweile nicht mal den Hauch eines Ansatzes...


Bitte, ihr PHP-Genies dieser Welt - HELFT MIR !
Danke, TinaX
 
Okay ich versuche es noch mal.

Und zwar brauchst du doch nur die Datenbanlstruktur ändern und zwar ungefähr so
id|sprache|tel|fax|usw.

Zwei Datenbankeinträge als Beispiel
1|de|Telefon|Faxnummer|...
2|en|telephon|fax|...

So und nun brauchst du nur noch deine Abfrage mit einer Where Klausel erweitern:

PHP:
"SELECT * FROM sprache AS a WHERE a.sprache='".$_SESSION['lang']."'"

Ich hoffe jetzt war es verständlich. ;9
 
Zurück