• 03-06-2013, 14:47:19
    #1
    Merhaba Arkadaşlar,
    Forumdan bir kaç arkadaşın tavsiyesiyle şu şekil rastgele 8 veri getirmeye calısıyorum fakat listelenen 8 veri de hep ayn değişmesi gerek. sorgum şu şekilde.

    $this->baglan();
    			$sonid	=	$this->query_db("SELECT id FROM videos ORDER BY id LIMIT 1");
    			$rand = rand(1,$sonid-20);
    			$sql = $this->query_array("SELECT id,title,thumb,views,liked,duration FROM videos WHERE id > $rand ORDER BY id LIMIT 8");
  • 03-06-2013, 21:36:36
    #2
    Güncel.
  • 03-06-2013, 21:37:19
    #3
    ORDER BY id LIMIT 1 değerini
    ORDER BY rand() LIMIT 1

    ile değiştirmeniz yeterli.
  • 03-06-2013, 21:40:12
    #4
    Msn adlı üyeden alıntı: mesajı görüntüle
    ORDER BY id LIMIT 1 değerini
    ORDER BY rand() LIMIT 1

    ile değiştirmeniz yeterli.
    mysql rand kullanmamak için bu yöntemle cekiyordum hocam ama
  • 03-06-2013, 21:52:05
    #5
    Hocam eğer kodları senkorize edip o şekilde çekmek istiyorsanız önce son veriyi çeken kodunuzu düzeltmelisiniz.

    $sonid = mysql_insert_id();

    Bu mysql'da kayıtlı olan son veriyi çeker.

    Kalan işlemlerde son id'den 20 çıkartır ve çıkan sonucu for döngüsüne sokup sonid değerinde bitirsiniz for döngüsü içerisindede o ide bağlı veriyi çekersiniz.
  • 04-06-2013, 09:28:37
    #6
    Msn adlı üyeden alıntı: mesajı görüntüle
    Hocam eğer kodları senkorize edip o şekilde çekmek istiyorsanız önce son veriyi çeken kodunuzu düzeltmelisiniz.

    $sonid = mysql_insert_id();

    Bu mysql'da kayıtlı olan son veriyi çeker.

    Kalan işlemlerde son id'den 20 çıkartır ve çıkan sonucu for döngüsüne sokup sonid değerinde bitirsiniz for döngüsü içerisindede o ide bağlı veriyi çekersiniz.
    $sonid = mysql_insert_id();
    $islem = $sonid - 20;
    for(i=0;i>=$islem;i++){
    ...
    }
    sanırım bu şekil diyorsunuz. for içerisinde mysql işlemimi yapacağız hocam ?
  • 04-06-2013, 09:50:10
    #7
    Üyeliği durduruldu
    $this->baglan();
                $sonid    =    $this->query_db("SELECT id FROM videos ORDER BY id LIMIT 1");
                $rand = rand(1,$sonid);
                $sql = $this->query_array("SELECT id,title,thumb,views,liked,duration FROM videos  ORDER BY id  LIMIT $rand,1");
    bu şekilde yaparsan 1 tane rastgele veri getirir. eğer belli bir sayıda veri istiyorsan örneğin 10 video listelensin,
    for($i=1;$i<10;$i++){
    $rand = rand(1,$sonid);
                $sql = $this->query_array("SELECT id,title,thumb,views,liked,duration FROM videos  ORDER BY id  LIMIT $rand,1");  
    }
  • 04-06-2013, 10:48:42
    #8
    madly0011 adlı üyeden alıntı: mesajı görüntüle
    $this->baglan();
                $sonid    =    $this->query_db("SELECT id FROM videos ORDER BY id LIMIT 1");
                $rand = rand(1,$sonid);
                $sql = $this->query_array("SELECT id,title,thumb,views,liked,duration FROM videos  ORDER BY id  LIMIT $rand,1");
    bu şekilde yaparsan 1 tane rastgele veri getirir. eğer belli bir sayıda veri istiyorsan örneğin 10 video listelensin,
    for($i=1;$i<10;$i++){
    $rand = rand(1,$sonid);
                $sql = $this->query_array("SELECT id,title,thumb,views,liked,duration FROM videos  ORDER BY id  LIMIT $rand,1");  
    }
    $this->baglan();
    			$sonid	=	$this->query_db("SELECT id FROM videos ORDER BY id LIMIT 1");
    			for($i=1;$i<20;$i++){
    			$rand = rand(1,$sonid);
                $sql = $this->query_array("SELECT id,title,thumb,views,liked,duration FROM videos  ORDER BY id  LIMIT $rand,1");  
    			}
    Warning: rand() expects parameter 2 to be long, resource given in
    o şekil denemiştim böyle bir hata ile karşılaşıyorum
  • 04-06-2013, 10:56:04
    #9
    Üyeliği durduruldu
    o zaman $sonid de sorun vardır o kullandığın classtaki query_db metodunun mysql_num_rows() fonksiyonu ile sayı geri döndürdüğünden emin olun