Php foreach循环-启动后添加项目?

Php foreach循环-启动后添加项目?,php,foreach,Php,Foreach,我有一个关于PHP foreach循环的问题。我在Codeigniter中使用它 基本上,我在数据库中有一个项目列表,我使用foreach循环在数据库中的每个项目上运行脚本,直到脚本在每个项目上运行为止 我的问题是:例如,如果我在数据库中有45个项目,然后启动了循环,那么如果在循环仍在运行时向数据库列表中添加了其他项目,从而使要循环的项目列表更大,会发生什么情况 它是否: 运行循环启动时循环中的所有项目(在本例中为45)。 或 运行循环中的所有项目,当循环结束时,在45号继续运行我在循环启动后添

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

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

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

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


我似乎找不到任何答案,任何信息都是最受欢迎的

当您使用CodeIgniter从数据库获取所有项目时,它会将结果放入结果对象或数组中,具体取决于您是否使用$this->db->result;或者$this->db->result\u数组


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

最初启动查询时,它们在db中有45条记录,然后添加了记录,因此当运行php脚本从db表中提取记录时,只会显示45条记录,它实际上根据u'r查询从表中提取所有记录并将其保存在PHP变量中。然后,foreach循环从该变量中逐个提取数据并执行它

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


如果你想执行,所有这些额外的记录。。然后再次对DB表进行SELECT查询并提取这些附加记录。。需要保留一个PHP数组并由foreach执行它们。

我不明白您为什么不继续尝试?一旦启动查询并对获取的结果运行forach循环,则不会添加任何记录,您必须再次从表中选择项