2
我在玩zencart,試圖讓它做我想做的事情,但我已經用盡了Google的想法。循環遍歷一個對象 - php
當我使用ZENCART功能的軟件返回一個對象,看起來查詢數據庫,如:
queryFactoryResult Object
(
[is_cached] =>
[resource] => Resource id #117
[cursor] => 11
[EOF] =>
[fields] => Array
(
[products_id] => 5582
[products_description] => description here
[products_name] => Lucky magnet – Each petal...
[products_type] => 1
[products_quantity] => 0
[products_image] => EachPetalMag.jpg
[products_price] => 3.4000
[products_status] => 1
[products_ordered] => 14
[master_categories_id] => 21
[supplier_id] => 7
)
)
我不得不遍歷一次算多少master_categories在那裏之前,我可以做任何事情:
while (!$products->EOF) {
$products_count++;
$supcats[$products->fields['master_categories_id']] = $products->fields['master_categories_id'];
$products->MoveNext();
}
我再通過對象需要循環再次使用類似上面的while循環,我已經試過:
reset($products);
和
$products->EOF = FALSE;
,但他們沒有工作。有沒有辦法做到這一點,無需再次發送查詢?禪車queryFactoryResult
您是否嘗試將數據存儲在數組中並第二次循環該數組?例如,PDO無法倒帶結果集光標。 – rodneyrehm 2012-07-05 19:22:51
您可以逐步瀏覽數據 - 按照@rodneyrehm的建議,統計master_categories的數量並將數據複製到數組中。 – andrewsi 2012-07-05 19:23:58
ZenCart沒有將指針設置回開始而不重新查詢或將信息存儲在數組中的功能。必須有更好的編寫邏輯的方法,而不需要多次遍歷結果集。 – Quantastical 2012-07-05 19:26:36