v2.5.2
Giriş yap

Php PDO Mysql Çoklu Dil Mantığı

hyki89
1,821 defa görüntülendi

İyi günler, internette araştırdım fakat sonuç bulamadım mysql ile çok dil mantığını bir türlü anlayıp kavrayamadım yardımcı olabilecek varsa sevinirim.

Cevap yaz
Cevaplar (15)
aydinkeskin
1460 gün önce

https://www.youtube.com/watch?v=_cYUea6cyXc

bu video tam senlik videonun 2 side var onuda izle ondan sonra rahatça yaparsın.

hqkqn
1461 gün önce

Sanırım bu işini görür https://github.com/BenEgeDeniz/Langy

aydinkeskin
1463 gün önce

dili session ile aynı tablo içerinde tutmak daha iyi olur gibi duruyor sanki
bunların yanı sıra
dil/***.php

içindede sabit yazılar için sutun ile bağlarsın

herşeyi session üzerinden yaparsın.
ha üye en son hangi dilde bıraktı ise onuda üyeye kaydedersin gelen dili

listelemedede sorun yaşamazsın

dili get ile gönder form dan onu sesion a aktar php tarafından.

sorgularına da dil diye bir sütun ekle sorgu yazarkende SELECT * FROM urunler WHERE dil=sessin(gelendeğer)
atıyorum 1 se türkçe kayıtlar gelir 2 ise ingilizce kayıtlar.

qplot
1463 gün önce

madem mantıklı diyorsun peki ozaman @webdevyusuf dedıgı gıbı yapacaksın benım anlattıgıma ek olarak

hyki89
1463 gün önce

@qplot nasıl olmalı hocam bence mantıklıda bir türlü veriyi çekip işlevsel yapamadım aklınızdakini paylaşırsanız çok iyi olur

qplot
1463 gün önce

senin veritabanı yapın yanlış

hyki89
1463 gün önce

@webdevyusuf bir kaç yol denedim dediğiniz şekil olmuyor

webdevyusuf
1463 gün önce

$_SESSION["language"] varya bunu mesela tablon langEN ve langTR ya senin TR yada EN olarak sessionda tuturman lazım zaten ondan sonra o yazıcak boş bi sayfada dene ve üstünde çalış mantığı kavrarsın.

hyki89
1463 gün önce

@webdevyusuf kullanımı nasıl olur hocam bunun

webdevyusuf
1463 gün önce
$langs = $db->query("SELECT * FROM table ");
$selectLang = $_SESSION["language"];
while ($lang = $langs->fetch(PDO::FETCH_ASSOC)) {
    if ($lang["lang"] == $selectLang) {
        echo $lang["lang{$selectLang}"];
        break;
    }
}
hyki89
1463 gün önce

Hocam ben şöyle bir şey diyeyim

idlanglangENlanTR
1homeHomeAna Sayfa
2pagePageSayfa

Lang sütunum sabit olsun hocam kullanıcı ingilizce veya türkçe için langEN veya langTR seçe bilsin
ve hocam böyle bir tabladan nasıl veri elde edebilirim ve bunu nasıl suna bilirim

webdevyusuf
1463 gün önce

Javascript ile yapmak daha mantıklı bence.

Örnek:
localstorage.setItem("language", "tr");
let lang = localstorage.getItem("language");
if (lang == "tr") {
    document.write("Dil Türkçe");
} else if (lang == "en") {
    document.write("Language English");
}
// ...
qplot
1463 gün önce

mantıgı anlatayım en basıt halı ıle

bır tablo olusturacaksın dil diye tabı sana kalmıs ısmı

id anasayfa hakkımızda iletisim vs

veya

id d1 d2 d3 d4 dıye

degerlerıde işte ana sayfa hakkımızda vs ekleyeceksın

bunları normal sorgu yapar gıbı sorgulayacak ve dil.php diye kaydedeceksin örnek


$dil=$db->prepare("SELECT * FROM dil WHERE id=?");
$dil->execute([$_SESSION['dil']]);
$d=$dil->FETCH(PDO::FETCH_ASSOC);

sonra session ile varsayılan dil belirleyeceksın örnek


if(empty($_SESSION['dil'])){ // ilk sayfaya gırınce dil 1 olarak ayarladık

$_SESSION['dil']=1;

}
if(isset($_GET['dil'])){ // dil sectıyse id atadık örnek ingilizce id 2 

$_SESSION['dil']=$_GET['dil'];

header( 'Location: index.php' ) ; // VEYA O ANKI SAYFAYA YONEDIRECEKSIN

}

BUNU TUM SAYFALARIN EN USTUNE KOYACAKSIN VEYA HER SAYFADA BU SORGUYU CALISTIRACAKSIN

sonrasında misal ana sayfa yazacak yerde


<?php echo $d['d1']; ?> veya <?php echo $d['anasayfa']; ?>

ILERI SEVIYEDE BU dil.php SAYFASINI json yapabılırsın veya FETCHALL olarak sorgulatabılrısın vs vs

sonrasında json olarakta cekebılırsın bla bla mantıgı sordun mantık bu

hyki89
1463 gün önce

@webdevyusuf hocam mysql yazmıştım dosyada zaten tuta biliyorum ben