select * from tbl_name where ... order by rand() limit N

解决方案 »

  1.   

    <?
     function randomPass($length=6)
        {
         // 使用所有可能作密码的字符
          $all = explode(" ","0 1 2 3 4 5 6 7 8 9");
         for($i=0;$i<$length;$i++)
         {
            mt_srand((double)microtime()*1000000);
            $randy = mt_rand(1,9);
            $pass .= $all[$randy];
         }
         return $pass;
         }   $link=mysql_connect("localhost");
       mysql_select_db("wxdb");
       for($i=0;$i<=4;$i++)//这里的i你可以改变,改变成你想每次随机产生的问题数!
       {
        $a=randomPass(1);//这里的(1)是可变得,可以产生几位随机数。
        $str="select * from wx where id='$a';";
        $result=mysql_query($str);
        list($k,$id)=mysql_fetch_row($result);
        echo $k."<br>";
       }
    ?>
    不知道这个你能不能用上,只是有时候可以产生重复!还有,产生的随机的问题不能超过100,这是两个bug。如果你能解决,给我回复!
      

  2.   

    //可以产生不同的随机数,但不是每次都能产生,只有得到足够数量的不同随机数时才有返回。仅作参考。
    function randselect()
    {
        $get = array();
        for($i=0; $i<5; $i++)
        {
            $rs = rand(1,15);
            $get[$i] = $rs;
            $fin = array_unique($get);
        }
        if(count($fin)==5)
        {
            Return $fin;
        }
    }
    $get = randselect();
    print_r($get);
      

  3.   

    楼上的提的方法我试了 能找到不同的随机数 还有一些问题请教,只有得到足够数量的不同随机数时才有返回,有时候执行此页面时没有显示,如何改进让每次都返回不同的随机数呢?
    另外,array_unique()函数能解释一下么 我猜是判断有无重复的函数 对么 手册里没有啊 能再具体些解释么? 谢谢