RAN一个id 0到mysql_num_rows    SELECT出来 不就可以了 
操作具体指

解决方案 »

  1.   

    第一个可以用rand()来生成随机数操作后可以生成一个SESSION里面记录首操作了哪条数据!然后继续用rand()生成随机,然后where一下,不等于前面操作的那条记录就可以了
      

  2.   

    有点像mediawiki里面的随机页面,不过那个理论上也是会有重复的可能性。如果要做到不重复就类似体育彩票机那种容器的概念了
      

  3.   

    发现按caotian2000的说法做的话,效果可以出来,就是效率不行啊 @_@
    session_start();
    session_register("hasview"); 
    if($hasview==""){
    session_register("hasview"); 
    $hasview=",";
    }
    $photo="";
    $b="n";
    //取得数据总条数
    $sql="select * from member";
    $result=mysql_query($sql,$db);
    $num_rows = mysql_num_rows($result);
    //如果全部数据已经显示完成,则清楚hasview
    $ar=split(",",$hasview);
    if(count($ar)>$num_rows){
    $hasview="";
    }
    echo $hasview;
    //搜索数据
    while($b=="n"){
    $sql="SELECT * FROM member AS r1 JOIN (SELECT ROUND(RAND()* (SELECT MAX(id) FROM member)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT 1";
    $result=mysql_query($sql,$db);
    if($myrow=mysql_fetch_array($result)){
    $photo=$myrow["photo"];
    }
    $ar=split(",",$hasview);
    if(in_array($photo, $ar)) {
    $b="n";
    }else{
    $b="y";
    $hasview.=$myrow["photo"].",";
    }
    }
      

  4.   

    Get all the ids into an array, then use array_rand() and array_splice() to get a rand id and delete from the array. Get the data of the random id from db.
      

  5.   

    在php中,用它的数组就可以实现的,就是一个容器的的概念,写过类似的算法。等我忙完写写看
      

  6.   

    $sql="SELECT * FROM member AS r1 JOIN (SELECT ROUND(RAND()* (SELECT MAX(id) FROM member)) AS id) AS r2 WHERE r1.id >= r2.id ORDER BY r1.id ASC LIMIT 1";===========================================
    为什么这么写$sql="select * from member
           where id not in ( ".trim($hasview,',')." )  
            order by rand()  
             limit 1
         "
    然后一个fetch不就可以了吗?
             
      

  7.   

    操作过的id:(1,2,3,..)
    出一条数据... and id not in (1,2,3,...)