2012-02-17 63 views
0

我有一个关于PHP foreach循环的问题。我在Codeigniter中使用它。foreach循环 - 一旦启动项目就添加项目?

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

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

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

我似乎无法找到这个任何答案,任何的信息是最赞赏

+0

试试看! – 2012-02-17 13:47:45

+0

我不明白为什么你不去尝试一下? – MacMac 2012-02-17 13:49:35

+1

一旦查询将被触发,您将在获取的结果上运行forach循环,不会添加任何记录,您必须再次从表 – 2012-02-17 13:50:45

回答

2

当你从获取使用CodeIgniter的数据库中的所有项目,它把在结果对象或数组的结果,这取决于你使用$this->db->result();$this->db->result_array();

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

0

最初,当你被炒鱿鱼查询其为45次的记录在数据库,然后记录已添加,所以只会有45条记录将显示其

+0

OH中选择项目。请原谅我最后的回答,我没有仔细阅读。 – elimirks 2012-02-17 13:57:51

0

当PHP脚本从数据库表中提取记录运行,它根据u'r查询&从表中提取所有记录,并将其保存在PHP变量中。之后,foreach循环从该变量&中逐一提取数据执行它。

在执行时,如果有任何更多的记录来到数据库表中,那么它将不会在u'r PHP数组中存储在u'r表中。所以,forloop执行不会受到那些额外行的影响。

如果妳想要执行,所有这些额外的记录..然后再u've使SELECT查询到数据库表&提取这些额外的记录。需要让他们一个PHP数组&通过的foreach执行。