So erstellen Sie mehrsprachige Abfragen an MySQL mit pHp

Ein Aspekt, der berücksichtigt werden muss, ist die korrekte Definition der Struktur der Datenbank . , que es un estudio de las relaciones entre las tablas. Obwohl es verschiedene Möglichkeiten zum Speichern der Datensätze gibt, müssen wir uns überlegen, wie die Strukturierung der Informationen zweckmäßig ist. Dies wird als Datenbanknormalisierungsprozess bezeichnet , bei dem die Beziehungen zwischen den Tabellen untersucht werden. Als Erstes müssen wir uns darüber im Klaren sein, dass selbst wenn wir die Datensätze in der Datenbank haben, es nicht zu einer Last von Abfragen kommt, da wir den MySQL-Cache selbst verwenden, um die Datensätze zwischenzuspeichern, sagen wir, dass dies keinen Sinn ergibt Ermitteln Sie den Namen einer Stadt in jeder Abfrage, wenn sie immer gleich heißt, da wir die Cachegröße entsprechend dem Volumen konfigurieren, das von unserer Datenbank generiert werden kann. Wenn Sie die Größe des Caches ändern möchten, müssen Sie query_cache_size verwenden, da die MySQL-Variable die Gesamtgröße des Caches steuert.

Die Liste der Datensätze wird mit InnoDB und der Verwendung von Fremdschlüsseln zum Verknüpfen von Tabellen erstellt. Wir haben also beispielsweise eine Tabelle mit dem Namen Länder und ein Feld mit der ID der Sprache und eine weitere Tabelle mit den Sprachen mit Übersetzungen. Diese letzte Tabelle ist die haben die Aufzeichnungen, die den Namen der Länder in verschiedene Sprachen übersetzt werden.

multi-language.jpg

Von PHP aus müssen wir die Sprache mithilfe von Sitzungen steuern. In diesem Fall speichern wir die Datensatz-ID der Tabelle in der Datenbank, um die Sprache des Benutzers zu identifizieren. Wir können dies über die Geolokalisierung tun oder eine Standardsprache verwenden für das Web und nachdem der Benutzer es ändert.
Wir setzen eine Sitzung mit der Sprach-ID:

 $ _SESSION ['idiomaid'] = 1 oder $ _SESSION ['idiomaid'] = 'es'; 

Dank dieser Sitzungsvariablen verwenden wir bei Abfragen an die Datenbank eine WHERE-Klausel, um die Register entsprechend der Sprache abzufragen.

 Wählen Sie * aus Ländern, in denen idiomaid = '". $ _ SESSION [' idiomaid ']."' Wählen Sie * unter Products WHERE idiomaid = '". $ _ SESSION [' idiomaid ']."' 

Basierend auf dieser Methode müssen wir unser Design für die Anpassung an die Sprachen vorbereiten und das gesamte Design erstellen, um dynamische Inhalte zu akzeptieren. : Zum Beispiel haben wir in mysql für den Titel der Seite ein Feld für jede Sprache :

 title = das ist mein Produkt language = is title = das ist mein Produkt language = in 

. So wie die Mysql-Abfrage die definierte Sprache bringt, können wir den Inhalt generieren .

See also  Laravel

Zum Beispiel würde der Titel der Seite so aussehen:

 <title> <? echo $ title?> </ title> 

: Eine dynamische Verknüpfung mit dem alternativen Attribut :

 <a href="mydomain.com/pagina.php" rela="alternate"> <? $ Row ['title'] ausgeben?> </a> 

Wir können es auch für verschiedene Elemente des Webs tun, wie Schaltflächen:

 <input type = "submit" value = "<? Echo $ tituloboton?>"> 

Dies ermöglicht es uns, aus der Sprache des Benutzers zu abstrahieren, um Inhalte anzuzeigen, die dem Land und sogar verschiedenen Abschnitten angepasst sind. . Zusätzlich zu MySQL kann dieselbe Methode für Text- oder XML-Dateien verwendet werden, je nach den Anforderungen des jeweiligen Projekts .

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *