• 17-01-2009, 15:18:50
    #1
    Merhaba arkadaşlar şu an elimde editörüm yok ve deneyemiyorum istediğim şey students tablosuna eklenen aynı isimli verilerden en son ekleneni almak tablodaki bölüm name aşağıdaki kodu denedim fakat en son veriyi vermedi;
    $show=mysql_query("SELECT* from students Group by name desc ORDER BY id ASC LIMIT $baslangic,$limit");
  • 17-01-2009, 15:48:53
    #2
    ORDER BY id desc
    denedin mi?
  • 17-01-2009, 15:51:35
    #3
    Kardeş aynı verilerin en son eklenini almak istiyorum listelemede asc ile listeliyorum ama tek verinin en son eklenen olmasını istiyorum.
  • 17-01-2009, 18:43:57
    #4
    Üyeliği durduruldu
    hocam bu işlem tek sorguda yapılamaz. önce tekrarlanan verileri alırsın. sonra bunları db de aratır id si en büyük olanı alırsın.
  • 17-01-2009, 18:45:25
    #5
    Üyeliği durduruldu
    Group by name (desc/asc) mysql 'de böle bişey maalesef yok... her zaman ilk eklenen gelecektir.

    $show=mysql_query("SELECT* from students Group by name desc ORDER BY id ASC LIMIT $baslangic,$limit");

    bunun yerine pear db kullanırım dersen dolaylı olarak çekerebilirsin
    $arr = $db->getAssoc('SELECT name,... FROM students ORDER BY id ASC LIMIT 10',true,DB_FETCHMODE_ASSOC,true);

    kolay gelsin...
  • 17-01-2009, 18:48:01
    #6
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    hocam bu işlem tek sorguda yapılamaz. önce tekrarlanan verileri alırsın. sonra bunları db de aratır id si en büyük olanı alırsın.
    Örnekleme yapabilirmisiniz tek sorguda halledilebileceğine eminim ama bulamadım en son denedeğim yöntem aşağıdaki gibi;
    Alıntı
    SELECT * FROM (SELECT * FROM students ORDER BY id DESC) GROUP BY name;
  • 17-01-2009, 19:09:24
    #7
    SELECT * FROM students GROUP BY name ORDER BY id DESC LIMIT 1


    denermisin ?
  • 17-01-2009, 19:12:53
    #8
    LaCReMeL adlı üyeden alıntı: mesajı görüntüle
    SELECT * FROM students GROUP BY name ORDER BY id DESC LIMIT 1
    denermisin ?
    Kardeş bu işlemez sen yanlış anlamışsın beni diğer arkadaş gibi, ben aynı isme sahip verilerden en son ekleneni yazdırmak istiyorum bu arada da listeleme yapmak istiyorum durum senin sandığın kadar basit değil yani .
  • 17-01-2009, 19:15:05
    #9
    Üyeliği durduruldu
    SELECT count(*) as say,name FROM students GROUP BY name having say > 1 ORDER BY say DESC

    bu sorgu ile tekrarlanan kayıtları alırsın. sonra buradaki "name" alanlarını "OR name=" ile birleştirirsin. implode yani.

    sonra "select * from students where name = $implodedegiskeni ORDER BY id DESC LIMIT 0,1" dersen istediğine ulaşırsın.

    daha kolay ve performanslı bir yolu vardır belki ama ben bulamadım