• 17-03-2008, 06:37:58
    #1
    Merhaba;
    Türkçe, İngilizce ve Rusça olarak tasarlayacağım bir web sayfası için tüm navigasyondaki linklerin tercümelerini değişkenlerle veritabanından çekmek, ve oturum değişkeni olarak kaydetmek istiyorum.
    Tablo dört sütunlu :
    ID - dil_kodu - degiskenadi - tercume
    Örnek Data :
    1 - en - anasayfa - Home Page
    Yapmak istediğim şey fetch_array ile data çektiğimde $anasayfa degiskenini tercume sütunundaki değere eşit olmasını sağlamak.Yani hem değişkenin adını, hemde değişkenin değerini veritabanından çekmek istiyorum.Aşağıdaki şekilde yazdım ancak sanıyorum bir yerde atladığım bir konu var.
    $veri=mysql_query("select * from lang where lang='$lang'");
    while ($q=mysql_fetch_array($veri))
    {
     $_SESSION["".$q['degisken'].""] = $q['value'];
    echo $q['anasayfa'];
    }
    While döngüsünde nasıl bu şekilde değişkenleri tanıtabileceğime dair bilgi verirseniz sevinirim.
    Kolay gelsin.
  • 17-03-2008, 06:46:52
    #2
    Kurumsal PLUS
    $veri=mysql_query("select * from lang where lang='$lang'");
    while ($q=mysql_fetch_array($veri))
    {
    $a = $q['degisken'];
     $_SESSION[$a] = $q['value'];
    echo $q['anasayfa'];
    }
    bu şekilde çalışması lazım. yalnız bu kodların üst kısmında session_start() ile session başlatıp başlatmadığını kontrol et, o yüzden çalışmıyor da olabilir.
  • 17-03-2008, 07:26:24
    #3
    evet sanırım session ile alakalı br sorun var.
    Yaptığım değişikliklerin hep bir sonraki refresh'de geldiğini farkettim.
    Bu lang.php dosyası, db.php'yi çağırıyor.Hep bir sonraki yenilemede anasayfa değişkeninin değeri değişiyor.

    <? 
    if (isset ($_POST['changelang']))
    {
    session_destroy();
    session_start();
    $lang=$_POST['changelang'];
    session_register('lang');}
    include ("db.php");
    ?>
    Bu da db.php dosyası
    	mysql_connect($dbhost,$dbuser,$dbpass) or die ("vertabanina baglanamadi");
    	mysql_select_db($dbname) or die ("veritabani bulunamadi");
    
    	mysql_query("SET NAMES 'utf-8'"); 
    	mysql_query("SET CHARACTER SET 'utf-8'"); 
    	mysql_query("SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'");
    
    
    header("Content-Type: text/html; charset=UTF-8");
    	
    $veri=mysql_query("select * from lang where lang='$lang'");
    while ($q=mysql_fetch_array($veri))
    {session_start();
     $_SESSION["".$q['degisken'].""] = $q['value'];
    }