2013-05-07 49 views
0

我做了我的腳本沒有類。 (框架)。現在我改變了主意&我想用班級製作我的腳本。我喜歡。但是,我有一個問題..無限循環雖然。我以前沒帶這個問題沒有課。PHP無限循環「同時」與類

雖然規則;

while ($fetch=$db->fetchObject($db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff.""))) 
{ 
    // etc 
} 

Class;

public function fetchObject($queryRes) 
{ 
    $this->queryRes = $queryRes; 
    $this->record = mysql_fetch_object($this->queryRes); 
    return $this->record; 
} 

當我嘗試while循環時,我在頁面上進行無限循環。 我該如何解決這個問題?

+0

我正在採取這樣的值:echo $ fetch-> item_name; – 2013-05-07 10:56:57

回答

4

您在每次迭代中執行查詢。它總是返回一個新的資源。

嘗試不同的查詢和週期:

$res = $db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff.""); 
while ($fetch=$db->fetchObject($res)) 
{ 
    // etc 
} 
+0

謝謝你的工作!...;你可以在6分鐘內接受答案.. :) – 2013-05-07 11:00:26

1

執行代碼在每個while循環,所以,如果你保持$db->q嵌套那裏將每次循環的時間執行查詢,返回每個而迭代你查詢結果的第一行。

嘗試分開你的代碼,就像這樣:

$result = $db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff.""); 
while ($fetch=$db->fetchObject($result)){ 
    // etc 
} 

這樣的$db->q()將按照預期只能執行一次,並同時將循環槽的結果。

0

您將在每次迭代時開始一個新查詢。

您需要存儲您的queryRes:

$queryRes = $db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff.""); 

while ($fetch=$db->fetchObject($queryRes)) 
{ 
    // etc 
} 

上的另一面,我不知道,你應該queryRes和記錄存儲爲$ DB的實例變量。