2016-09-28 133 views
-1

我想在表中藥房所有檢查數量0號不工作,如果語句中while循環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; 


} 

感謝

+1

列'quantity'的數據類型是什麼? –

+0

「不行」是什麼意思?任何錯誤? – simon

+0

如果您將表中已有的數量作爲基礎,則根本無需執行任何操作。當您稍後顯示內容時,只需使用數量字段。 – bcmcfc

回答

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

但正如我所說,這是一個糟糕的設計。您已經擁有關於數量字段值中是否包含庫存的信息,請在需要的地方使用。

+0

我是PHP初學者,你的解決方案與我合作>>謝謝 – mohammed

0

的SQL查詢正確sintax是

SELECT column_name,column_name 
FROM table_name 
WHERE column_name operator value; 

當你寫

WHERE quantity 

它可能是你唯一的選擇那些其數量比 「0」 不同。只需嘗試選擇所有條目:

$select="SELECT * FROM drugs"