• 26-07-2013, 19:48:44
    #1
    merhaba arkadaşlar sql den istediğim tarzda bir veri çekemedim yardımcı olursanız sevinirim.

    şimdi 2 tablomuz var yazarlar ve makaleler die.

    ben yazarlardan durumu 1 olanların makalelerini çekiyorum 2 while kullanarak fakat düz sırayla gelmiyor.

    örnek:

    $query = mysql_query("SELECT * FROM yazarlar WHERE durum='1' ORDER BY id DESC");
    while( $row = mysql_fetch_assoc($query))
    {
    $yazarisim = $row["yazarisim"];

    $soryazilar = mysql_query("SELECT * FROM makaleler WHERE gonderen='$yazarisim' ORDER BY id DESC");

    While($yazyazilar=mysql_fetch_array($soryazilar)){
    $makale = $yazyazilar["makale"];

    echo "$makale";
    }
    }

    böyle çekince sonuc aynı kullanıcının makaleleri alt alta geliyor sonra diğer yazara geçiyor oysa ben makaleleri son eklenenlere göre göstermek istiyorum varmı çözebilen ?
  • 26-07-2013, 19:56:16
    #2
    sadece son eklenen makaleleri istiyorsun anladığım kadarı ile.

    $query = mysql_query("SELECT * FROM makaleler ORDER BY id DESC");
    while( $row = mysql_fetch_assoc($query))
    {
    $sonmakaleler = $row["makale"];
    echo $sonmakaleler.'<br />';
    }
    makaleler tablosunda id sütunu olduğunu varsayıyorum.
  • 26-07-2013, 19:59:58
    #3
    hocam kodlara baktıysanız demek istediğim o değil. php biliyorumda o mantığı kuramadım. yazarlar tablosunda sadece yazar isimleri ve durumu var. yani verdiğiniz kodda orada makale olmadıgı için çekemeyiz.

    istediğim şu yazarlar tablosunda durum değeri 1 olanları al ve makaleler tablosundan bu isimdekilerin makalelerini listele. üstteki kodda bunu yapıyorum ancak makale tarihine göre değilde yazarlar isimlerinin listelenmesine göre verio makaleleri ki o koda göre dogal olanda bu. benim istediğim son makalelere göre listelemesi bunu nasıl yaparım ?
  • 26-07-2013, 20:13:39
    #4
    hocam ben demek istediğini yine anlamadım da
    Alıntı
    benim istediğim son makalelere göre listelemesi bunu nasıl yaparım ?
    bu ikinci kodunda zaten mevcut. senin yazdığın kod şu şekilde çıktı verir.

    Alıntı
    Yazar10
    yazısı3
    yazısı2
    yazısı1
    Yazar9
    yazısı3
    yazısı2
    yazısı1
    Sen tam olarak ne istiyorsun ?
  • 26-07-2013, 21:04:36
    #5
    benim yazdıgım kod yalnış biliyorum anlatabilmek için yazdım.

    tam açıklıyım tabloları

    yazarlar
    -yazarismi
    -durum

    makaleler
    -makale
    -tarih

    şimdi diyelimki yazarlar da 5 tane yazar var bunlardan 2 tanesinin durum değeri 1 oldugu için sadece bu 2 si çekilecek ve makaleler tablosundan bunlara ait makaleler çekilecek bu kod ile sizinde üstte verdiğiniz şekil cıkar

    Yazar10
    yazısı3
    yazısı2
    yazısı1

    Yazar9
    yazısı3
    yazısı2
    yazısı1

    oysa ben yazılarının son eklenmesine göre listeletmek istiyorum. örnek :

    Yazar10
    yazısı3
    Yazar9
    yazısı3
    Yazar10
    Yazısı2
    Yazar9
    yazısı2

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 21:04:36 -->-> Daha önceki mesaj 20:20:30 --

    yokmu bunu çözebilecek ?
  • 26-07-2013, 21:27:11
    #6
    makaleler döngüsünü yazarlar döngüsünün üzerine alırsan sıkıntı kalmaz.
  • 27-07-2013, 00:28:25
    #7
    biomooj adlı üyeden alıntı: mesajı görüntüle
    makaleler döngüsünü yazarlar döngüsünün üzerine alırsan sıkıntı kalmaz.
    nasıl olacak o dediğiniz ?

    $soryazilar = mysql_query("SELECT * FROM makaleler WHERE gonderen='$yazarisim' ORDER BY id DESC");

    bu sorgudaki $yazarisim verisi nerden gelecek peki ?
  • 27-07-2013, 00:41:56
    #8
    kaptanasi adlı üyeden alıntı: mesajı görüntüle
    nasıl olacak o dediğiniz ?

    $soryazilar = mysql_query("SELECT * FROM makaleler WHERE gonderen='$yazarisim' ORDER BY id DESC");

    bu sorgudaki $yazarisim verisi nerden gelecek peki ?
    makaleler döngüsünün içinde tüm filtrelemeleri yapabilir, istediğin bilgileri alabilirsin. diğer türlü yazarlar tablosuna göre sıralama olur. son eklenen yazılara göre sıralama yapamazsın. makaleler döngüsünü en üste alacağından where olmayacak orada zaten. php bildiğinden emin misin?
  • 27-07-2013, 01:07:18
    #9
    tamam kardeşim farklı bi yöntemle hallediyorum ben şimdi. ilgilenenlere teşekkürler