foreach循环-添加项目一次';s已启动


foreach loops - adding items once it's been initiated?

我有一个关于PHP foreach循环的问题。我正在Codeigniter中使用它。

基本上,我在数据库中有一个项目列表,我使用foreach循环在数据库中的每个项目上运行一个脚本,直到在每个项目上都运行了该脚本。

我的问题是:例如,如果我在数据库中有45个项目,然后启动循环,那么如果在循环仍在运行时将其他项目添加到数据库列表中,从而使一个更大的项目列表循环,会发生什么?

会不会:运行循环启动时在循环中的所有项目(在本例中为45)。或运行循环中的所有项目,当它结束时(在编号45处),继续在循环启动后添加的其他项目上运行脚本。

我似乎找不到任何答案,任何信息都非常感谢

当您使用CodeIgniter从数据库中提取所有项目时,它会将结果放入结果对象或数组中,具体取决于您使用的是$this->db->result();还是$this->db->result_array();

因此,当您循环处理这个结果时,任何新记录都不会显示在这个对象或数组中。只有在激发新查询时,才会将任何新行添加到结果中。

最初,当您启动查询时,数据库中有45条记录,然后添加了记录,因此只有45条记录将显示

当php脚本运行以从DB表中提取记录时,它实际上根据u'r查询&将其保存在PHP变量中。之后,foreach循环从该变量&执行它。

在执行时,如果有更多的记录进入u'r DB表,那么它将存储在u'r表中,而不是u'r PHP数组中。因此,forloop的执行不会受到这些额外行的影响。

如果你想执行,所有那些额外的记录。。那么你必须再次对DB表进行SELECT查询&提取那些附加记录。。需要为它们保留一个PHP数组&用foreach执行。