Php 循环查询结果,并在每100条记录重叠后执行一些操作

Php 循环查询结果,并在每100条记录重叠后执行一些操作,php,mysql,Php,Mysql,$result包含非特定数量的记录 我需要循环$result,在每100条记录之后,做一些事情,然后继续循环,但包括前一个循环中的5条记录(重叠) 像这样: 获得0-100的记录 对这些记录做些什么 获取记录95-195 对这些记录做些什么 获取记录190-290 有人对如何以最有效的方式完成这项工作提出了建议吗?首先,我同意评论员的观点。我们在这里帮助您解决遇到的问题,但不是编写脚本 尽管如此,我还是为你的问题写了一份完美的解决方案: $results; #your results for(

$result包含非特定数量的记录

我需要循环$result,在每100条记录之后,做一些事情,然后继续循环,但包括前一个循环中的5条记录(重叠)

像这样:

  • 获得0-100的记录
  • 对这些记录做些什么
  • 获取记录95-195
  • 对这些记录做些什么
  • 获取记录190-290

  • 有人对如何以最有效的方式完成这项工作提出了建议吗?

    首先,我同意评论员的观点。我们在这里帮助您解决遇到的问题,但不是编写脚本

    尽管如此,我还是为你的问题写了一份完美的解决方案:

    $results; #your results
    
    for($i = 0; $i <= @{$results}, $i++){ #loop through all results
        my @tempList;
        push(@tempList, @{$results}[$i]); #push every result in a temporary list
        if (@{$results} == 100 || $i == @{$results}) { #do sth, if the tempList hast 100 entries or you're at the last round of your loop
            #do sth with the 100 records
            $i -= 5; #decrement i to get the 5 entries overlap
    
        }
    }
    
    $results#你的结果
    对于($i=0;$i
    $slimit=0;
    $flimit=100;
    
    虽然($flimitI还没有为此编写任何代码,因为我不确定如何处理。那么请编写一些代码,如果遇到一些问题,请再次询问。目前的问题太广泛了。stackoverflow只是关于修复不工作的代码吗?我在哪里可以询问有关代码制作的帮助信息?stackoverflow是关于帮助您解决问题的ts-不为你做这项工作。有很多书和在线教程,你可以找到基本PHP的细节和可以执行的各种类型的循环。因此,想法是你阅读并尝试一些东西,如果它起作用,那么你已经做得很好,否则展示代码,人们很可能会帮助你。我没有要求有人写这篇文章为我完成了代码,我询问了一些建议、伪代码或一些方法来让我开始。在这种情况下,只要告诉我应该制作一个临时列表等,会有很大的帮助,因为我没有想到。谢谢!这看起来像是我想要的!@的目的是什么?我以为它只是用于抑制函数中的错误?另外,为了检查它是否是最终计数,我会检查$I是否<$rowcount-5吗?就像我说的:它是perl。在perl中,
    @
    表示一个数组,
    $
    表示一个标量。在我的示例中,我使用了一个引用(指针),一个标量,指向结果数组。然后我用
    @{$results}取消了它的引用
    获取数组本身。在for循环中,在标量上下文中使用数组来获取其长度是一种非常好的方法;)这是我首先想到的,但是在PHP中这样做而不是进行几个查询不是更有效吗?
        $slimit=0;
        $flimit=100;
    
        while($flimit<=total_records_in_your_table)
        {
            $q="select * from table_name limit $slimit,$flimit";
    
            while($data=mysql_fetch_row($q))
            {
                //opration
            }
    
            $slimit=$flimit-6;
            $flimit=$flimit+$slimit;
    
    }