我没有上课就制作了我的剧本。 (框架)。现在我改变了主意。我想用课程编写脚本。我喜欢。但我有一个问题..无限循环而。没有上课之前我没有考虑过这个问题..
虽然规则;
while ($fetch=$db->fetchObject($db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff."")))
{
// etc
}
类;
public function fetchObject($queryRes)
{
$this->queryRes = $queryRes;
$this->record = mysql_fetch_object($this->queryRes);
return $this->record;
}
当我尝试while循环时,我在页面上进行无限循环。 我该如何解决这个问题?
答案 0 :(得分:4)
您在每次迭代中执行查询。它总是返回一个新资源。
尝试分离查询和循环:
$res = $db->q("SELECT * FROM auction_house.items ORDER BY id DESC LIMIT ".$min_stuff.",".$max_stuff."");
while ($fetch=$db->fetchObject($res))
{
// etc
}
答案 1 :(得分: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()
只会按预期执行一次,而while会循环显示结果。
答案 2 :(得分: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和record记录为$ db的实例变量。