【发布时间】:2021-07-27 18:55:34
【问题描述】:
如何根据mysqli结果在php中的while循环中为数组赋值,以使计数器过滤另一个while循环??
我想为我的计数器变量分配类似的东西:
$counter = array("6:00 Am" => 0, "8:00 Am" => 0, "10:00 Am" => 0);
对于此代码:
//This is from transaction table
$stm2 = "SELECT tr_sched FROM transaction WHERE tr_date = CURRENT_DATE()";
$res2 = $conn->query($res2);
while($rows5 = $res2->fetch_assoc())
{
//Not working
$counter[] = array($rows5['tr_sched'] => 0)
}
因此,如果调度时间大于我的限制变量,我可以过滤另一个 while 循环,如下所示:
//This is from my schedule table
$stm = "SELECT sc_time FROM schedule GROUP BY sc_time";
$res = $conn->query($stm);
$counter = array();
while($row4 = $res4->fetch_assoc())
{
//Note working
if($counter[$row4['sc_time']] >= $limit/*=10*/)
{
echo "<option disabled="">" . $row4['sc_time'] . "</option>";
}
else
{
echo "<option>" . $row4['sc_time'] . "</option>";
}
}
以上所有代码的目标是显示调度表中的所有调度时间作为选择元素的选项,并且如果调度时间已经有10条或大于10条记录(限制变量)在我今天的交易表上,它将显示为选项但禁用,因此用户无法选择它。 我希望你明白我的意思,如果你对我的问题有什么要澄清的,我会尽量保持积极的回答。
【问题讨论】:
-
$counter[] =在数字键下创建一个新元素。您不希望在此处自动确定密钥,而是要明确指定它 -$counter[$row4['sc_time']]。然后你不想给它分配一个数组给,而只是直接分配0。 -
@CBroe 我必须在其上使用数组,因为我将使用它作为我的另一个 while 循环的计数器
-
这有什么关系?如果您想要一个您向我们展示的表单数组作为您需要的,然后按照我告诉你的那样做。如果您需要别的东西 - 那么您首先需要给我们一个正确的解释。 (还有什么while循环?为什么需要一个计数器?)
-
@CBroe 我为我的整个问题更新了它。
-
那么就照我说的做吧……(使用不同的行变量,你在两者之间进行了更改)
标签: php arrays mysqli while-loop