在循环php中,数字0不能与if语句一起使用

时间:2016-09-28 13:25:26

标签: php

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

如果数量== 0进行更新并更改" Out Stock"

否则数量将更改为"库存"

如果语句不起作用,则获取数字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;


}

谢谢

2 个答案:

答案 0 :(得分:0)

不要打扰。

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

如果最终目标只是向用户输出内容,请在视图中执行此操作。

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类型。

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

答案 1 :(得分:0)

SQL QUERY的正确sintax是

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

写作时

WHERE quantity

你可能只选择那些数量不同于&#34; 0&#34;的那些。只需尝试选择所有条目:

$select="SELECT * FROM drugs"