• 03-05-2013, 16:37:57
    #1
    Arkadaşlar Bir ilan Sitem var ve ben anasayfa vitrindeki ilanları order by ilanlar.id şeklinde sıralıyorum ve vitrine eklenen en son ilan haliyle vitrinin en başında çıkıyor , ben bu sıralamayı böyle değilde sayfa her açıldığında farklı bir sıralamaya göre dizilmesini istiyorum yani vitrindeki ilanlar sayfa her açıldığında farklı bir ilan çıksın . bunu nasıl yapabilirim yardımcı olabilirmisiniz ?
  • 03-05-2013, 17:10:07
    #2
    ORDER BY RAND() dersin olur...
  • 03-05-2013, 17:42:36
    #3
    çok sağol bu kadar basitmiydi ya
  • 03-05-2013, 19:47:43
    #4
    Gelen rasgele veriyi şu şekildede Ada göre sıralatabilirsin. Daha kazirmatik görünür.
    SELECT * FROM 
    (
     SELECT * FROM ilan ORDER BY rand() LIMIT 20
    ) 
    ORDER BY ilanadi
    • byburkay
    byburkay bunu beğendi.
    1 kişi bunu beğendi.
  • 03-05-2013, 21:56:49
    #5
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Gelen rasgele veriyi şu şekildede Ada göre sıralatabilirsin. Daha kazirmatik görünür.
    SELECT * FROM 
    (
     SELECT * FROM ilan ORDER BY rand() LIMIT 20
    ) 
    ORDER BY ilanadi

    O kadar koda gerek yok ya

    ORDER BY RAND(), ilanadi DESC, ilanid ASC şeklinde demek yeterli çok veriye gore duzenleyecekseniz..
  • 04-05-2013, 21:33:40
    #6
    Teşekkür Ederim Yardımlarınız İçin.
  • 04-05-2013, 23:12:13
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Son çektiğiniz ilanları bir diziye daha sonra bu diziyi php'nin shuffle methodu ile karıştırırsınız.
    Mysql'da rand() kullanmak hayli masraflı birşey ve her defasında farklı ilanları getirecektir son ilanları getirmeyecektir.

    Örnek olarak şu şekilde.

    1) Select * from ilan order by id DESC limit 10 // son 10 ilanı çekelim.

    2) mysql_fetct_array ile sonucu alalım ve $sonilanlar adında bir diziye atalım.

    3) shuffle($sonilanlar) // yaparak her defasından çektiğimiz son 10 ilanı farklı sıralamayla göstereceğiz.