Kako stvoriti višejezične upite za MySQL s pHp

Sadržaj
Jedan aspekt koji se mora uzeti u obzir je ispravno definirati strukturu baze podataka. Iako mogu postojati različiti načini spremanja zapisa, morat ćemo vidjeti kako bi informacije trebale biti strukturirane, to se zove proces normalizacije baze podataka, koji je proučavanje odnosa između tablica. Prva stvar oko koje moramo biti jasni je da čak i ako imamo zapise u bazi podataka, ona neće trpjeti opterećenje upita, budući da ćemo koristiti MySQL -ov vlastiti predmemoriju za spremanje zapisa, recimo da nema smisla dobivati naziv grada u svakom upitu ako će se uvijek zvati isto, odnosno konfigurirat ćemo veličinu predmemorije na temelju volumena koji naša baza podataka može generirati. Ako želite promijeniti veličinu predmemorije, morate koristiti query_cache_size jer varijabla MySQL kontrolira ukupnu veličinu predmemorije.
Stvorit ćemo odnos zapisa sa InnoDB i korištenje stranih ključeva za povezivanje tablica, pa ćemo, na primjer, imati tablicu pod nazivom Zemlje, a polje će biti ID jezika, a druga tablica s jezicima s prijevodima bit će ta zadnja tablica koja ima zapisi koji će biti prevedeni naziv zemalja na različitim jezicima.

Iz PHP Način na koji kontroliramo jezik je pomoću sesija, u ovom slučaju spremamo ID zapisa tablice baze podataka radi identifikacije jezika korisnika, to možemo učiniti geolokacijom ili koristiti zadani jezik za web, a zatim ga korisnik mijenja.
Stavili smo sesiju s jezičnim ID -om:
$ _SESSION ['languageid'] = 1 ili $ _SESSION ['languageid'] = 'es';

Zahvaljujući ovoj varijabli sesije, pri upitu u bazu podataka koristit ćemo ovakvu klauzulu WHERE za ispitivanje zapisa prema jeziku.
 Odaberite * iz zemalja WHERE languageid = '". $ _ SESSION [' languageid ']."' Odaberite * iz proizvoda WHERE languageid = '". $ _ SESSION [' languageid ']."' 

Na temelju ove metode moramo pripremiti svoj dizajn za prilagodbu jezicima, stvarajući cijeli dizajn za prihvaćanje dinamičkog sadržaja. Na primjer, u mysqlu za naslov stranice imat ćemo polje za svaki jezik:
 naslov = ovo je jezik mog proizvoda = je naslov = ovo je jezik mog proizvoda = hr 

Baš kao što mysql upit donosi definirani jezik, možemo generirati sadržaj.
Na primjer, naslov stranice izgledao bi ovako:

Također dinamička veza s zamjenskim atributom:

To možemo učiniti i za različite elemente weba, poput gumba:

To nam omogućuje apstrahiranje s jezika korisnika za prikaz sadržaja prilagođenog zemlji, pa čak i različitim odjeljcima. Osim Mysqla, ista se metoda može koristiti s tekstualnim ili xml datotekama prema potrebama svakog projekta.
wave wave wave wave wave