Kaip sukurti kelių kalbų užklausas „MySQL“ naudojant pHp

Turinys
Vienas aspektas, į kurį reikia atsižvelgti, yra teisingai apibrėžti duomenų bazės struktūrą. Nors įrašų išsaugojimo būdų gali būti įvairių, turėsime pamatyti, kaip informacija turėtų būti struktūrizuota, tai vadinama duomenų bazės normalizavimo procesu, kuris yra santykių tarp lentelių tyrimas. Pirmas dalykas, kurį turime išsiaiškinti, yra tai, kad net jei turime įrašus duomenų bazėje, jis nepakels užklausos, nes mes naudosime „MySQL“ talpyklą, kad įrašai būtų saugomi talpykloje, tarkime, nėra prasmės gauti miesto pavadinimą kiekvienoje užklausoje, jei jis visada bus vadinamas tuo pačiu, tai yra, mes sukonfigūruosime talpyklos dydį pagal apimtį, kurią gali sukurti mūsų duomenų bazė. Jei norite pakeisti talpyklos dydį, turite naudoti query_cache_size, nes būtent „MySQL“ kintamasis valdo visą talpyklos dydį.
Mes sukursime įrašų santykį su „InnoDB“ ir svetimų raktų naudojimas lentelėms susieti, taigi, pavyzdžiui, turėsime lentelę, pavadintą „Šalys“, o laukas bus kalbos ID, o kita lentelė su kalbomis su vertimais - ši paskutinė lentelė įrašai, kurie bus išversti šalių pavadinimai įvairiomis kalbomis.

Nuo PHP Kalbą valdome naudodami seansus, šiuo atveju išsaugome duomenų bazės lentelės įrašo ID, kad nustatytume vartotojo kalbą, tai galime padaryti pagal geografinę vietą arba naudoti numatytąją žiniatinklio kalbą, o tada vartotojas ją pakeičia.
Mes surengėme sesiją su kalbos ID:
$ _SESSION ['languageid'] = 1 arba $ _SESSION ['languageid'] = 'es';

Šio seanso kintamojo dėka, kai teiksime užklausą duomenų bazėje, mes naudosime tokią WHERE sąlygą, kaip užklausą įrašams pagal kalbą.
 Pasirinkite * iš šalių WHERE languageid = '". $ _ SESSION [' languageid ']."' Pasirinkite * iš produktų WHERE languageid = '". $ _ SESSION [' languageid ']."' 

Remdamiesi šiuo metodu, turime paruošti savo dizainą, kad jis prisitaikytų prie kalbų, sukurdamas visą dizainą, kad jis priimtų dinamišką turinį. Pavyzdžiui, „mysql“ puslapio pavadinimui turėsime lauką kiekvienai kalbai:
 title = tai mano produkto kalba = is title = tai mano produkto kalba = lt 

Kaip „mysql“ užklausa atneša apibrėžtą kalbą, mes galime sukurti turinį.
Pavyzdžiui, puslapio pavadinimas atrodytų taip:

Taip pat dinamiška nuoroda su alternatyviu atributu:

Taip pat galime tai padaryti įvairiems žiniatinklio elementams, pvz., Mygtukams:

Tai leidžia mums susilaikyti nuo vartotojo kalbos, kad būtų rodomas turinys, pritaikytas pagal šalį ir net skirtingus skyrius. Be „Mysql“, tą patį metodą galima naudoti su teksto ar xml failais, atsižvelgiant į kiekvieno projekto poreikius.
wave wave wave wave wave