• 16-05-2008, 02:47:27
    #10
    Caddeciyiz adlı üyeden alıntı: mesajı görüntüle
    MYSQL RAND 'in bu kadar kastigini bilmiyordum.
    Yuksek hitli ve anlik ortalama 100 online ziyaretcisi olan sitemde RAND() kullaniyordum.Sunucuda mysql server felaket sekilde sisiyordu.
    1den fazla veri cekmek icin ne yapacagiz?
    for döngüsü kullanabilirsiniz.

    örn 10 değer için:
    <?php
    $kayitsayisi= mysql_num_rows(mysql_query("Select * From oyunlar"));
    for ($i=1; $i<=10; $i++)
    {
    $sayi=rand(1,$kayitsayisi);
    $sorgu = mysql_fetch_array(mysql_query("Select * From oyunlar where oyun_id = '$sayi'"));
    }
    ?>
    not: çekilen random değerler ekrana yazdırılacaksa bu döngü içinde yazdırma işlemi yapılmalıdır.başka bir döngü ile yazdırmak istiyorsanız $sayi[$i] şeklinde array (dizi) kullanmanız gerekir.
  • 16-05-2008, 03:04:14
    #11
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    for döngüsü kullanabilirsiniz.

    örn 10 değer için:
    <?php
    $kayitsayisi= mysql_num_rows(mysql_query("Select * From oyunlar"));
    for ($i=1; $i<=10; $i++)
    {
    $sayi=rand(1,$kayitsayisi);
    $sorgu = mysql_fetch_array(mysql_query("Select * From oyunlar where oyun_id = '$sayi'"));
    }
    ?>
    not: çekilen random değerler ekrana yazdırılacaksa bu döngü içinde yazdırma işlemi yapılmalıdır.başka bir döngü ile yazdırmak istiyorsanız $sayi[$i] şeklinde array (dizi) kullanmanız gerekir.
    Bu sekilde yapilabilir zaten ama binlerce verinin icinden for ile mysql e 30 tane sorgu gondermek MYSQL RAND() 'dan daha fazla kasmaz mi ?
  • 16-05-2008, 10:33:25
    #12
    Üyeliği durduruldu
    $tsql=mysql_query("select count(id) from oyunlar");
    $trow=mysql_fetch_assoc($tsql);
    $toplam=$trow['count(id)'];
    $rastgele=rand(1,$toplam);
    $sql=mysql_query("select * from oyunlar where id between $rastgele and $rastgele+100 order by rand() limit 5");
    while($row=mysql_fetch_object($sql)){
    //
    }
    mysql_free_result($sql); mysql_free_result($tsql);
    bu şekildede olabilir...