PHP While循环更新在第一行停止
我做了一个while循环,它将告诉您事务历史中是否有项目,并在事务结束时将其放回库存中,但问题是。它获取一个名为 未捕获错误:在中的bool上调用成员函数fetch_assoc() 所以我一个接一个地尝试了这个查询,结果成功了 我尝试对另一个查询进行实验和注释,并添加了一个计数器++;来判断循环是否有效。我发现的问题是,在第一个if-else之后,计数器只加1,好像我只尝试这个,它循环4,这是正确的 查询我试图检查循环的数量PHP While循环更新在第一行停止,php,Php,我做了一个while循环,它将告诉您事务历史中是否有项目,并在事务结束时将其放回库存中,但问题是。它获取一个名为 未捕获错误:在中的bool上调用成员函数fetch_assoc() 所以我一个接一个地尝试了这个查询,结果成功了 我尝试对另一个查询进行实验和注释,并添加了一个计数器++;来判断循环是否有效。我发现的问题是,在第一个if-else之后,计数器只加1,好像我只尝试这个,它循环4,这是正确的 查询我试图检查循环的数量 $counter=0; $sql="SELECT * FRO
$counter=0;
$sql="SELECT * FROM brb_backtransaction WHERE trans_uk='$curr_trans' ";
if($rs=$con->query($sql)){
while ($row=$rs->fetch_assoc()){
$counter++
}
}
它回显1234,所以它是正确的,但当第一次出现if else时,它只回显1
$counter =0;
$sql="SELECT * FROM brb_backtransaction WHERE trans_uk='$curr_trans' ";
if($rs=$con->query($sql)){
while ($row=$rs->fetch_assoc()){
$item = $row['trans_item'];
$quan = $row['trans_quantity'];
$sqlsitem="SELECT itmQuantity FROM brb_inventory WHERE itmName='$item'";
if($rs=$con->query($sqlsitem)){
$quanrow = $rs->fetch_assoc();
$currquan = $quanrow['itmQuantity'];
$counter++;
}
我删除了其他查询,因为我认为这是问题所在。我在while循环中总共运行了3个查询。要使while循环正常工作,它需要访问存储在
$rs
变量中的原始数据流
但是,在代码的下面,您将用一个全新的数据流替换$rs
变量的内容。因此,while循环不再能够访问原始数据流,因为它基本上是丢弃的
要解决此问题,请将第二个实例更改为另一个变量名,如$rs2
。这样,对于两个不同的数据流,就有了两个完全不同的变量
话虽如此,您的代码也容易受到注入攻击。我建议调查PDO并准备好声明
另外,使用SQL联接时切向垂直是正确的您似乎正在用一个全新的查询覆盖
$rs
变量的值。这是不允许的吗?我已经在我的另一个网页上尝试过了,如果你不需要回到上一个网页,它是可以被允许的。但是,在您的情况下,while循环希望找到上一个查询,而该查询现在已被丢弃。我将尝试对每个被调用的query逐个更改$rs变量。您不应该使用PHP循环记录集以执行更多查询。您应该构造查询,以便在一个查询中返回所需的所有数据。看看SQL连接