Selam;
Elimde şu kod var,
$indexson = $veridb->get_results("SELECT * FROM mp3 where onay='evet' order by id desc Limit 0,30");
bu kod yeni eklenen verileri listeliyor. bu kodda nasıL bir değişikle rastgele veri çekebilirim? Yardımcı olurmusunuz..
Php Rastgele
7
●606
- 17-02-2009, 23:29:52evet doğrudur. önce rastgele listeler sonra baştan 30 tanesini veya kaçtanesini istediysen okadarını alır.Erol adlı üyeden alıntı: mesajı görüntüle
az veride sorun değil ama çoklu veride şişmeye neden olabilir.
id lerden rastgele x adet birbirinden farklı sayı üretip ürettiğin sayılara denk gelen idleri select ile veritabanından almayı deneyebilirsin
şurayada bakabilirsin:
SQL RANDOM Fonksiyonu Performans Problemleri | Ahmet Alp Balkan : Bugün Ne Öğrendim? - 17-02-2009, 23:38:10Kimlik doğrulama veya yönetimden onay bekliyor.veya mysqli ile daha performanslı hale getirilebilir
örnek :
$stmt = mysqli_prepare($baglan,"SELECT * FROM mp3 WHERE onay='evet' GROUP BY RAND() limit 30"); mysqli_stmt_execute($stmt);
sonra kullanmak istediğin değişkenleri
mysqli_stmt_bind_result
ile çekersin - 18-02-2009, 13:05:29Üyeliği durduruldukasmayacak şekilde veri almak istiyorsan şöyle bir işlem olabilir. İlk başta php ile verisayısını ögrenip bu aralıkta rastgele sayı üretirsin.
$result = mysql_query("select count(id) from tablo"); while($row = mysql_fetch_array($result)){ $adet = $row[0]; } $rastgele=rand(0,$adet); mysql_free_result($result); $result = mysql_query("select *from tablo limit $rastgele,1"); while($row = mysql_fetch_array($result)){ // datayla yapılacak ivir zivir } mysql_free_result($result);ama bir test etmek lazim en azin şöyle 400 000 - 500 000 data ile bu mu daha hizli yoksa direk sql ile işlem yapmak mi hizli. sonuçta rastgele sıralarken limit veriliyorsa bunun gibi bir algoritma arka planda calisiyor olabilir