• 24-12-2012, 16:52:32
    #1
    Merhaba

    Şimdi şöyle bir sql imiz var diyelim

    select * from icerikler order by id desc limit 10
    Şimdi bu son 10 içeriği verecek,benim yorumlarıda aynı anda çekmem lazım malum birden çok yorum oldugu için join yapamıyoruz.

    while ($data=mysql_fetch_array($sql)) {
         $i_id=$data['id'];
         $yorumlar=mysql_query("select * from yorumlar where id='$i_id'");
    }
    Şeklindede yorumları aldık,ama bu benim için yetersiz,benim içeriklerin içinde olduğu değişken ile yorum değişkenini birleştirmem lazım.Yani bunlar birleşecek ve tek bir değişken olacak ve ben tek seferde basacağım.Yapı şu şekilde olmalı yani (Örnek json ama illa json değil array olsada olur)

    {
      {
        'icerik',
        'yorumlar':{
           { yorum_detay }
           { yorum_detay }
        }
       {
         'icerik'
       }
    }
    Bu yapıyı nasıl sağlaım ?
  • 24-12-2012, 18:09:17
    #2
    Yöntemini anlatayım

    {
    {
    'icerik',
    'yorumlar':{
    { yorum_detay }
    { yorum_detay }
    }
    {
    'icerik'
    }
    }

    bu veriyi json_decode ederek öncelikle sırayı elde edebilirsin. Sanıyorum ki bu metinden daha fazlası da vardır yani kısaltarak veriyorsun.

    ardından print_r ile bastırıyorsun.

    Sırası önemli, Örneğin

    object, array, array, string yazdı ise bu veriyi bu şekilde php içinde elde ediyorsun.
  • 24-12-2012, 18:30:45
    #3
    Üyeliği durduruldu
    Tam emin değilim, ama çalışması lazım

    $json = array();
    while ($data=mysql_fetch_array($sql)) {
         $yorumlar = array();
         $icerik = $data['icerik'];
    
         $i_id=$data['id'];
         $yorumlist=mysql_query("select * from yorumlar where id='$i_id'");
         while($yorum = mysql_fetch_array($yorumlist)) {
             $yorumlar[] = $yorum['icerik'];
         }
         $json[] = array('icerik' => $icerik, 'yorumlar' => $yorumlar);
    }
    echo json_encode($json);
    tolgay007 adlı üyeden alıntı: mesajı görüntüle
    Merhaba

    Şimdi şöyle bir sql imiz var diyelim

    select * from icerikler order by id desc limit 10
    Şimdi bu son 10 içeriği verecek,benim yorumlarıda aynı anda çekmem lazım malum birden çok yorum oldugu için join yapamıyoruz.

    while ($data=mysql_fetch_array($sql)) {
         $i_id=$data['id'];
         $yorumlar=mysql_query("select * from yorumlar where id='$i_id'");
    }
    Şeklindede yorumları aldık,ama bu benim için yetersiz,benim içeriklerin içinde olduğu değişken ile yorum değişkenini birleştirmem lazım.Yani bunlar birleşecek ve tek bir değişken olacak ve ben tek seferde basacağım.Yapı şu şekilde olmalı yani (Örnek json ama illa json değil array olsada olur)

    {
      {
        'icerik',
        'yorumlar':{
           { yorum_detay }
           { yorum_detay }
        }
       {
         'icerik'
       }
    }
    Bu yapıyı nasıl sağlaım ?
  • 24-12-2012, 18:54:57
    #4
    $sql = mysql_query("SELECT icerikler.kid,icerikler.adi,icerikler.adi_s,icerik ler.tarih,yorumlar.id,yorumlar.kullanici FROM icerikler INNER JOIN yorumlar ON icerikler.kid = yorumlar.id order by id desc limit 0,10");
    örnek olarak yazdım kendinize göre düzenlersiniz.
  • 24-12-2012, 22:50:12
    #5
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    $sql = mysql_query("SELECT icerikler.kid,icerikler.adi,icerikler.adi_s,icerik ler.tarih,yorumlar.id,yorumlar.kullanici FROM icerikler INNER JOIN yorumlar ON icerikler.kid = yorumlar.id order by id desc limit 10");
    örnek olarak yazdım kendinize göre düzenlersiniz.
    Bu şekilde tüm yorumlar gelirde,gösterirken nasıl göstereceksiniz döngüde ?

    Hyperion verdiği yöntem mantıklı gibi geldi bana
  • 24-12-2012, 23:26:44
    #6
    tolgay007 adlı üyeden alıntı: mesajı görüntüle
    Bu şekilde tüm yorumlar gelirde,gösterirken nasıl göstereceksiniz döngüde ?

    Hyperion verdiği yöntem mantıklı gibi geldi bana
    Örnek olarak verdim tabloları bu şekilde kullanabilirsiniz.
    <?php
    
    $sql = mysql_query("SELECT icerikler.id,icerikler.adi,icerikler.tarih,yorumlar.i_id,yorumlar.kullanici FROM icerikler INNER JOIN yorumlar ON icerikler.id = yorumlar.i_id order by id desc limit 0,10");
    while ($data=mysql_fetch_array($sql)) {
    echo " ".$data['id']." ".$data['kullanici']." ";
        
    }  
    
    ?>
  • 25-12-2012, 00:06:25
    #7
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    Örnek olarak verdim tabloları bu şekilde kullanabilirsiniz.
    <?php
    
    $sql = mysql_query("SELECT icerikler.id,icerikler.adi,icerikler.tarih,yorumlar.i_id,yorumlar.kullanici FROM icerikler INNER JOIN yorumlar ON icerikler.id = yorumlar.i_id order by id desc limit 10");
    while ($data=mysql_fetch_array($sql)) {
    echo " ".$data['id']." ".$data['kullanici']." ";
        
    }  
    
    ?>
    Tamamda,bu her dönüşte 1 içerik basacak.Yorumlarında 1 tanesini basacak yani onu soruyorum ben
  • 25-12-2012, 00:44:11
    #8
    tolgay007 adlı üyeden alıntı: mesajı görüntüle
    Tamamda,bu her dönüşte 1 içerik basacak.Yorumlarında 1 tanesini basacak yani onu soruyorum ben
    limit 0,10 10 tane listeleyecektir. denemedim ama bir sorun çıkacagını sanmıyorum 1 tane degil 10 tane listeler