Thomas Schmieder: php4 / Hompegage in 5 Sprachen

Beitrag lesen

Guten Abend

wortweise wird man das wohl kaum machen können, sondern nur Abschnittsweise.

Jeder (Text-)Abschnitt bekommt dann einen Datensatz. Unnormalisiert enthält er jetzt ein Feld vom Typ Text pro Sprache. Die Felder heißen sinnvollerweise so, wie die Sprache.

In der PHP-Seite wird jetzt immer nur die Funktion aufgerufen für die Ermittlung des Textes mit der Textnummer:

echo text(12234,LANG);

Language ist als Konstante gesetzt.

Das von der Funktion aufgerufene sql-query wird dann wie folgt aussehen:

$sql="Select ".LANG." as FELD from <table> where ID=$id;

Die Antwort zur Weiterverarbeitung steht damit also immer in FELD und du hast nur die Daten von der DB abzufordern, die Du brauchst.

Wenn Du das Seitenweise organisierst, also pro Webseite einen Hauptschlüssel für Deine Sprach-Items vergibst, dann kannst Du die Abfrage für die ganze Seite in einem SQL-erledigen.

Ich würde dann in einen table für Seiten-Angaben und einen für die einzelelmente aufteilen. Die Abfrage lauft dann immer über die Seitennummer in der Elementdatei.

Table ELEMENTE
ID_Element     bigint index unique primary
ID_Seite       bigint
ID_Sprache     bigint
Element        text
CSS            text               Verpackter CSS-String des elementes

$sql = "select element, CSS from ELEMENTE where ID_Seite = $IDseite and ID_Sprache = $IDsprache";

Dann brauchst Du nur noch die Schleife durchflitzen zu lassen

while ($element = mysql_fetch_assoc($res))
{
  echo "<div ID="ID".$$element["ID_Element"]."" style="".$element["CSS"]."">\n"
  echo $element["Element"]."\n";
  echo "/div>\n";
}

Konnte ich mich so einigermaßen verständlich machen? Hilft Dir das weiter?

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.