我把数据库中的20条数据分了2段用error_log()方法写入文本中.一个没用循环 一个用了循环!但是2次效果不一样!这是为什么?
没用循环$ip=$_SG['db']->fetch_all("select * from main_info limit 0,10");
用error_log();写入文本 文件1$ip=$_SG['db']->fetch_all("select * from main_info limit 10,20");
用error_log()写入文本 文件2用了循环for($i=0;$i<=1;$++)
{
$ip=$_SG['db']->fetch_all("select * from main_info limit $i,10");
用error_log();写入文本 文件$i
}没用循环写的2个文本数据分别为1-10 和 10-20
用了循环写了2个文本中数据位1-10 和1-20我只想问一句WHY????

解决方案 »

  1.   

    for($i=0;$i<=1;$++)
    {
    $ip=$_SG['db']->fetch_all("select * from main_info limit $i*10,10*($i+1)");
    用error_log();写入文本 文件$i
    }你的循环应该这样写吧
      

  2.   

    另外
    limit 起始, 总数
    而不是
    limit 起始,结束
      

  3.   

    白水山言 我这个写错了!我是说:
    我把数据分为很多段 每隔1000就就写入文件 不用循环的话 可以实现!但是用了循环就不能!
    也就是说我 5000条数据 我5次导出。
    不用循环的话是导出文件的结果
    A文件:1-1000
    B文件:1001-2000
    C文件:2001-3000
    D文件:3001-4000
    E文件:4001-5000用了循环就是
    A文件:1-1000
    B文件:1-2000
    C文件:1-3000
    D文件:1-4000
    E文件:1-5000
    我想用循环实现 我不用循环的结果
      

  4.   

    希望的结果            对应的sql
    A文件:1-1000       select * from tbl_name limit 0, 1000
    B文件:1001-2000    select * from tbl_name limit 1000, 1000 
    C文件:2001-3000    select * from tbl_name limit 2000, 1000
    D文件:3001-4000    select * from tbl_name limit 3000, 1000
    E文件:4001-5000    select * from tbl_name limit 4000, 1000于是有
    for($i=0; $i<5; $i++) {
      $sql = "select * from tbl_name limit $i*1000, 1000";
    }或
    for($i=0; $i<总记录数; $i+=每段记录数) {
      $sql = "select * from tbl_name limit $i, 每段记录数";
    }
      

  5.   

    $page=1000;//不能为0
    $total=获得总的记录数;
    $totalpage=ceil($total/$page);
    for($currentpage=0,$currentpage<$totalpage;$currentpage){
    $start=$currentpage*$page;
     $sql="... limit $start,$page";
    //取出数据保存一下
    }
    没测试,应该没错.
      

  6.   

    sorry
    for($currentpage=0,$currentpage <$totalpage;$currentpage++){ 
      

  7.   

    for 里面是;号 我晕. 你自己看下吧.