Meertalige query's maken naar MySQL met pHp

Inhoudsopgave
Een aspect waarmee rekening moet worden gehouden, is: de databasestructuur correct definiëren. Hoewel er verschillende manieren kunnen zijn om de records op te slaan, zullen we moeten zien hoe de informatie moet worden gestructureerd, dit wordt het databasenormalisatieproces genoemd, wat een studie is van de relaties tussen de tabellen. Het eerste waar we duidelijk over moeten zijn, is dat zelfs als we de records in de database hebben, er geen query wordt geladen, omdat we de eigen cache van MySQL zullen gebruiken om de records in de cache te plaatsen, laten we zeggen dat het geen zin heeft om te verkrijgen de naam van een stad in elke zoekopdracht als deze altijd hetzelfde wordt genoemd, dat wil zeggen, we zullen onze cachegrootte configureren op basis van het volume dat onze database kan genereren. Als u de cachegrootte wilt wijzigen, moet u query_cache_size gebruiken, aangezien het de MySQL-variabele is die de totale cachegrootte bepaalt.
We zullen de relatie van records creëren met: InnoDB en het gebruik van buitenlandse sleutels om tabellen te relateren, dus we zullen bijvoorbeeld een tabel hebben met de naam Landen en een veld zal de taal-ID zijn en een andere tabel met de talen met vertalingen zal zijn, deze laatste tabel zal degene zijn die de records die worden vertaald naam van de landen in verschillende talen.

Van PHP De manier waarop we de taal beheersen, is door sessies te gebruiken, in dit geval slaan we de record-ID van de databasetabel op om de taal van de gebruiker te identificeren, we kunnen dit doen door geolocatie of een standaardtaal voor het web gebruiken en dan verandert de gebruiker deze.
We zetten een sessie met de taal-id:
$ _SESSION ['languageid'] = 1 of $ _SESSION ['languageid'] = 'es';

Dankzij deze sessievariabele zullen we, wanneer we de database bevragen, een WHERE-clausule zoals deze gebruiken om de records te doorzoeken op basis van de taal.
 Selecteer * van Landen WHERE languageid = '". $ _ SESSION [' languageid ']."' Selecteer * van Producten WHERE languageid = '". $ _ SESSION [' languageid ']."' 

Op basis van deze methode moeten we ons ontwerp voorbereiden om aan te passen aan talen, en het hele ontwerp maken om dynamische inhoud te accepteren. In mysql hebben we bijvoorbeeld voor de titel van de pagina een veld voor elke taal:
 title = dit is mijn producttaal = is title = dit is mijn producttaal = en 

Net zoals de mysql-query de gedefinieerde taal oplevert, kunnen we de inhoud genereren.
De titel van de pagina ziet er bijvoorbeeld als volgt uit:

Een eveneens dynamische link met het alternatieve attribuut:

We kunnen het ook doen voor verschillende elementen van het web, zoals knoppen:

Hierdoor kunnen we abstractie maken van de taal van de gebruiker om inhoud te tonen die is aangepast aan het land en zelfs verschillende secties. Naast Mysql kan dezelfde methode worden gebruikt met tekst- of xml-bestanden, afhankelijk van de behoeften van elk project.
wave wave wave wave wave