• 18-04-2010, 21:34:16
    #1
    Üyeliği durduruldu
    comments tablosundan post_id değeri $_GET[id] ile belirtilen tüm satırları (önemi var mı bilmiyorum ama farklı bir sorguda LEFT JOIN ile) çekiyorum. Ama iş yazdırmaya gelince, gelen satırların sadece ilk gelenini yazdırıyor. While ile yazdırınca da her satırı iki kez yazıyor. Bir türlü çıkamadım işin içinden. :S
  • 18-04-2010, 21:41:49
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Kodunuzu alabilir miyiz?
  • 18-04-2010, 22:01:26
    #3
    Üyeliği durduruldu
    Sorgu kodunu soruyorsan:

    SELECT `post`. * , `user`.`name` AS `poster` , `cat`.`name` AS `catname` , `comment`.`content` AS `comments`
    FROM `post` , `user` , `cat`
    LEFT JOIN `comment` ON `comment`.`post_id` = '$_GET[id]'
    WHERE (`post`.`id` = '$_GET[id]') AND (`comment`.`post_id` = '$_GET[id]')
    PHP kodunu soruyorsan da o biraz uzun olduğu için teyid etmeni bekliyorum.
  • 19-04-2010, 04:56:10
    #4
    NesranJk adlı üyeden alıntı: mesajı görüntüle
    Sorgu kodunu soruyorsan:

    SELECT `post`. * , `user`.`name` AS `poster` , `cat`.`name` AS `catname` , `comment`.`content` AS `comments`
    FROM `post` , `user` , `cat`
    LEFT JOIN `comment` ON `comment`.`post_id` = '$_GET[id]'
    WHERE (`post`.`id` = '$_GET[id]') AND (`comment`.`post_id` = '$_GET[id]')
    PHP kodunu soruyorsan da o biraz uzun olduğu için teyid etmeni bekliyorum.
    3 kere birbirine baglamisin gerke yok o kadar.Joinle gitsin napacan

    "SELECT * FROM post LEFT JOIN (user, cat, comment)
                     ON (user.id=post.user_id AND cat.id=post.cat_id AND comment.post_id=post.id) WHERE post.id = '$_GET[id]'";
    eger tablo sutunlarinda hata yoksa calisasi gerekir.
    print_r la bir queryi yi gorursun neler .cekmis neler cekmemis assoc la daha rahat olur. kolay gelsin cozemezsen haber et tekrar
    $q="SELECT * FROM post LEFT JOIN (user, cat, comment)
                     ON (user.id=post.user_id AND cat.id=post.cat_id AND comment.post_id=post.id) WHERE post.id = '$_GET[id]'";
    
    $q= mysql_query($q);
    while ($row= mysql_fetch_assoc($q)){
    print_r($row);
    }
    boyle bir denermisin onune ne gelecek
  • 19-04-2010, 19:29:34
    #5
    Üyeliği durduruldu
    Hocam bu şekilde sorgu düzgün çalışıyor. Ancak bazı sütun başlıkları aynı olduğundan (örn: cat.name ve user.name gibi) PHP dosyasına alırken aynı olan değerleri yazdırmıyor. Ben kendi sorgumda AS kullanmıştım, burada nasıl yapacağım konusunda bir fikrim yok. :\
  • 19-04-2010, 19:31:32
    #6
    NesranJk adlı üyeden alıntı: mesajı görüntüle
    Hocam bu şekilde sorgu düzgün çalışıyor. Ancak bazı sütun başlıkları aynı olduğundan (örn: cat.name ve user.name gibi) PHP dosyasına alırken aynı olan değerleri yazdırmıyor. Ben kendi sorgumda AS kullanmıştım, burada nasıl yapacağım konusunda bir fikrim yok. :\
    "SELECT *,user.name as usernammeeee,cat.name as catnameee FROM post LEFT JOIN (user, cat, comment)
    ON (user.id=post.user_id AND cat.id=post.cat_id AND comment.post_id=post.id) WHERE post.id = '$_GET[id]'";

    gibi değiştir kolay gelsin
  • 19-04-2010, 19:59:49
    #7
    Üyeliği durduruldu
    İlk başa döndük yine. Ben de farklı bir şey deneyip iki farklı sorgu yaptım. Önce tüm bilgileri alıp while kullanmadan yazdırdım, çünkü zaten tek bir satır dönüyor. Sonra comment tablosunun bilgilerini alıp while ile yazdırdım, çünkü satır sayısı değişken.

    Çok teşekkürler.