2012-02-17 34 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執行。

相關問題