• 20-06-2016, 17:16:44
    #1
    Üyeliği durduruldu
    Arkadaşlar merhaba benim soyle bir sıkıntım var. sitede 3 dille içerik ekleyebiliyorum. eklemeyi mysql de örneğin
    baslik
    baslik_en
    baslik_de
    icerik
    icerik_en
    icerik de seklinde yapıyorum.

    Benim sıkıntım şu bazı içerikler ingilizceye bazı içerikler almancaya bazıları turkçeye bazılarıda birden fazla dille ekleme yapılacak.
    Fakat dil seçiminde içerik girilmeyen dilin listelenmesini istemiyorum

    yani aynı satırda yer alan içeriklerde eğer ingilizce içeriği yoksa ingilizce listelenmesin turkçe secildiğinde türkçe listelensin istiyorum

    sql den veri <?php echo $haber['baslik'.$dil.'']; ?> seklinde cekiliyor dil seciminden $dil _en veya _de alıyor.

    Yardım edebilirseniz cok sevinirim.
  • 20-06-2016, 17:52:18
    #2
    Umarım talep ettiğiniz budur hocam .

    <?php
    
    $dil="_en";  // Dilimiz ingilizce seçili olsun.
    
    $baslik="Ben Türkçe Başlık";
    $baslik_en="";  // dil ingilizce ama başlık girilmemiş olsun.
    $baslik_de="";
    
    
    if($dil=="_en" and $baslik_en=="") {  // dil ingilizce ise ve ingilizce boşsa türkçe yazdırsın
    
    echo $baslik;
    
    }
    
    
    elseif($dil=="_de" and $baslik_de=="") { // dil almanca ise ve almanca boşsa türkçe yazdırsın	 
    echo $baslik;
    }
    
    
    else{
    echo "seçili dil: $dil ve başlık boş değil.";	// eğer seçili dil en & tr & de ise ve boş değilse seçili dil başlığı yazdır.
    }
    
    
    ?>
  • 20-06-2016, 18:07:09
    #3
    Üyeliği durduruldu
    hocam soyle ornek vereyim oncelikle ilginiz için tesekkur ederim.

    tablomda 1 satır su sekilde olsun

    $baslik: "Türkçe Başlık"
    $baslik_en: "İngilizce Başlık"
    $baslık_de: ""

    2.satır
    $baslik: ""
    $baslik_en: "İngilizce Başlık"
    $baslık_de: ""

    3.satır
    $baslik: "Türkçe Başlık"
    $baslik_en: ""
    $baslık_de: ""

    şimdi ben türkçe dil sectiğimde 1 satırda 2. satırda 3. Satırda listeleniyor. 2. satırın verisi boş gozukuyor
    ingilizce seçtiğimdede tüm satırlar listeleniyor 3. satır verileri boş gözüküyor
    benim istediğim ben türkçeyi sectiğimde 2. Satır tr veri olmadığı için hiç listelenmesin sorguda 1 ve 3 uncu satır listelensin.

    ingilizce sectiğimde 1 ve 2 listelensin

    almancada hiç birşey listelenmesin istiyorum.
  • 20-06-2016, 18:58:04
    #4
    hocam ilgili sayfanın kodunu paylaşabilrimisin ?
  • 22-06-2016, 15:39:56
    #5
    BuRacK adlı üyeden alıntı: mesajı görüntüle
    hocam soyle ornek vereyim oncelikle ilginiz için tesekkur ederim.

    tablomda 1 satır su sekilde olsun

    $baslik: "Türkçe Başlık"
    $baslik_en: "İngilizce Başlık"
    $baslık_de: ""

    2.satır
    $baslik: ""
    $baslik_en: "İngilizce Başlık"
    $baslık_de: ""

    3.satır
    $baslik: "Türkçe Başlık"
    $baslik_en: ""
    $baslık_de: ""

    şimdi ben türkçe dil sectiğimde 1 satırda 2. satırda 3. Satırda listeleniyor. 2. satırın verisi boş gozukuyor
    ingilizce seçtiğimdede tüm satırlar listeleniyor 3. satır verileri boş gözüküyor
    benim istediğim ben türkçeyi sectiğimde 2. Satır tr veri olmadığı için hiç listelenmesin sorguda 1 ve 3 uncu satır listelensin.

    ingilizce sectiğimde 1 ve 2 listelensin

    almancada hiç birşey listelenmesin istiyorum.
    En basitinden başlıkların boş olup olmadığını kontrol edeceksin.

    Foreach veya while artık hangi döngü şeklini kullanıyorsan o döngünün içine bir kural koyacaksın. Örnek;

    // Eğer haberin Türkçe başlığı boş ise bu haberi atla.
    // empty fonksiyonu da kullanılabilir.
    if(trim($haber['baslik_tr'])==''){ continue; }
    Bu ufak kural ile Türkçe başlığı boş olan haberleri listeletmeden atlayabilirsin.

    Bunu sorgu (sql) tarafında da yapabilirsin.
  • 29-07-2016, 02:45:46
    #6
    Üyeliği durduruldu
    Çözümü sql içine değişken atarak cözdüm

    yardımlarınız için cok teşekkur ederim
  • 29-07-2016, 23:57:00
    #7
    Sorunu çözmüşsün ama belki işine yarar diye bir fonksyion yazayım dedim.
    $baslık_tr, $baslık_en, $baslık_de misal bu değişkenleri databaseden çektiğimiz değişkenler diyelim. Anladığım kadarıyla bu değişkenleri bir divin içinde yazdıracaksın.
    <div class="languanges"></div> örnek olarak böyle bir div olsun.
    Şimdi fonksiyonumuzu yazalım

    function deneme($x){
    if($x=''){
    return true; // boş bi değer dönsün;
    }else{
    return '<div class="languanges">'.$x.'</div>';
    }
    }
    en sonda komple divin olduğu bloğu silip <?echo deneme($baslık_tr);?> vs. şeklinde kullanabilirsin.