日期:2014-05-17  浏览次数:20486 次

关于分批读取mysql数据存储到数组的问题
关于分批读取mysql数据存储到数组的问题

想把每次读取的记录都存储到数组里,大家都怎么实现的?我的代码始终实现不了,每次都是把最后一次从数据库中读出来的数据存到数组,前面的全被清空.有空的朋友帮帮忙提供下思路,想不明白了,先行谢谢了!~~~
PHP code

    $returnarray=array();
    $str=''; 
    $k_group=2;//做2组实验
    $k_num=1   ;   //每一组实验随机取一条记录
    $rr=array();
    while($k_group) {
      if ($k_num>0){//循环取出100条记录传入数组$returnarray,然后将最大,最小和中间值传出做为标本
         //sql为了产生一条随机数据,有点笨,先这样用吧.
       $sqlstr=" 
       SELECT * FROM hmk AS t1 JOIN (SELECT ROUND(rand() * ((SELECT MAX(hmkid) FROM hmk)-(SELECT min(hmkid) FROM hmk))+(SELECT MIN(hmkid) FROM hmk)) AS id) AS t2 WHERE t1.hmkid >= t2.id ORDER BY t1.hmkid LIMIT 1 ";
       $result=$db->query($sqlstr) ;
        //if($result) echo '入库成功1312312!';else echo 'sorry! try again please!';
         while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)) {
           $returnarray[]= $row; //[color=#FF0000]这里的$returnarray在下一组实验时就会被清空,怎么把数据保存下来?[/color]           }
         $k_num--;   
             
        $m=$returnarray;
        //下面这段代码是从上面返回的数据中    取前1-6个字段,并把出现次数写入RR数组,朋友们可以先不管他
        foreach ($m as $key=>$value) {
           $i=0;
           foreach ($value as $k) { 
           if($i<7 and $i>0) {
            if(array_key_exists($k,$rr)){
                     
                  $rr[$k]++; 
                     //echo '$k='.$k ;
                     }
                 
                 else {
                    $rr[$k]=1;
                 }   
                 }
                 $i++; } 
              }  
            }
            
            $k_group--;
        }
            
        print_r($returnarray);   ;
        
        print_r($m);//creat_array2table($m) ;



------解决方案--------------------
试了一下,不会回收.