gpt4 book ai didi

php - Mysql查询逻辑以及一遍又一遍返回相同变量的循环

转载 作者:行者123 更新时间:2023-11-29 13:31:35 25 4
gpt4 key购买 nike

嗨,所以我做了一个查询,当我尝试循环出结果时,它会一遍又一遍地循环出相同的变量。它不是无限循环,并且由于数据的原因,很难判断它是否循环了正确的次数。我想做的是:从客户表中选择所有不同的 customer_uid,其中 start_cycle_uid(来自 start_cycle 表)具有相同的 customer_home id 和传入的相同 start_date。所以我会得到每个客户之一在该开始日期属于该 customer_home。我得到的是相同 customer_uid 的列表。我的逻辑有问题吗?

$homeQuery=$DB->prepare("select distinct customer_uid from customers
where start_cycle_uid =
(select uid from start_cycles
where customer_home_uid=".$DB->quote_smart($_REQUEST['homeid'])."
and start=".$DB->quote_smart($_REQUEST['start']).")");

$homeResult=$DB->query($homeQuery);
$homeRow=$DB->fetchArray($homeResult);
if ($DB->numRows($homeResult) > 0) {
for ($x=0; $x<=$DB->numRows($homeResult); $x++){
echo $homeRow['customer_uid']."<br />";
}
}

更新:当前代码如下所示:

$homeQuery=$DB->prepare("select distinct customer_uid from customers
where start_cycle_uid =
(select uid from start_cycles
where customer_home_uid=".$DB->quote_smart($_REQUEST['homeid'])."
and start=".$DB->quote_smart($_REQUEST['start']).")");

$homeResult=$DB->query($homeQuery);
while($row = $DB->fetchArray($homeResult))
{
echo $row['customer_uid']."<br />";
}

现在陷入了无限循环。

最佳答案

你的逻辑是多余的。常见的做法是在行存在时对其进行迭代 - 然后您不需要检索行数。就会像

while($row = $DB->fetchArray($homeResult))
{
//now you have $row as actual fethed DB row
}

- 这将起作用,因为分配将返回与 $DB->fetchArray($homeResult) 相同的结果 - 即当没有更多行时 false - 这将导致循环结束.

关于php - Mysql查询逻辑以及一遍又一遍返回相同变量的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19378458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com