繁体   English   中英

数字0不适用于while循环php中的if语句

[英]Number 0 not work with if statement inside while loop php

我想检查表药房中的所有数量

如果数量 == 0 进行更新并更改“缺货”

否则数量将更改为“有货”

如果语句不起作用,则何时获得数字 0。

这是我的 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!";
}

如果您真的想更新数据库,请在两个查询中进行,而不是每行 2 个:

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

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

但正如我所说,这是一个糟糕的设计。 您已经在数量字段的值中获得了有关某件商品是否有库存的信息,因此请在需要的地方使用该信息。

SQL QUERY 的正确语法是

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

当你写

WHERE quantity

可能是您只选择数量不同于“0”的那些。 尝试选择所有条目:

$select="SELECT * FROM drugs"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM