数字0不工作与if语句内while循环php


Number 0 not work with if statement inside while loop php

我要检查表Pharmacy中所有的数量

如果数量== 0,更新并更改"缺货"

否则数量将变为"In Stock"

如果语句不工作

我的PHP代码:

 $select="SELECT * FROM drugs WHERE quantity";
$resultt = mysqli_query($connect, $select);
$count="1";
while($row = $resultt->fetch_array(MYSQLI_ASSOC)){
    $id=$row["id"]; 
    $Quantity=$row["quantity"]; 
if($Quantity == "0"){
$update="UPDATE drugs SET stock='Out Stock' WHERE id='$id'";
$result = mysqli_query($connect, $update);   
}else{
$update="UPDATE drugs SET stock='In Stock' WHERE id='$id'";
$result = mysqli_query($connect, $update);
}

    $count++;
    $Q+=$Quantity;

}

谢谢

不用麻烦了。

您正在根据同一行中的另一个值设置一个值。没有必要那样做。表的设计只是将现有的数据复制为两种表示形式。

如果最终目标只是输出内容给用户,在视图中完成。

if ($row['quantity'] < 1) {
  echo "out of stock!";
}

如果你真的想要更新数据库,在两次查询中完成它,而不是每一行两次:

UPDATE drugs SET stock = 'Out of Stock' WHERE quantity = 0;
UPDATE drugs SET stock = 'In Stock' WHERE quantity > 0;

当然假设stock字段是CHAR或VARCHAR类型。

但正如我所说,这是一个糟糕的设计。在quantity字段的值中已经包含了关于某件商品是否有库存的信息,所以在需要的地方使用它。

正确的SQL查询是

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

WHERE quantity

可以是你只选择那些不同于"0"的数量。试着选择所有条目:

$select="SELECT * FROM drugs"