我有一个执行以下操作的PHP脚本: 它选择表中的所有数据。如果行大于0,则必须更新数据,否则会生成新的数据行。使新数据工作,只有更新不会运行。 这是我的代码:
$host = "localhost";
$user = "******";
$password = "*********";
$database = "elektrowinkel";
$link = mysqli_connect($host, $user, $password) or die("Er kan geen connectie gelegd worden met $host");
mysqli_select_db($link, $database) or die("databank $database niet beschikbaar");
$queryRijen = "SELECT * FROM stock_fysieke_winkels
WHERE Fysieke_winkel_ID = '". $_POST['winkel'] . "' and
Product_ID = '" . $_POST['product']. "'";
$rijen = mysqli_query($link, $queryRijen);
$resultaat = mysqli_num_rows($rijen);
if (mysqli_num_rows($rijen) > 0)
{
$query = "UPDATE stock_fysieke_winkels
Set Aantal = '" .$_POST['aantal']. "'
WHERE Fysieke_winkel_ID = '". $_POST['winkel'] . "',
Product_ID = '" . $_POST['product']. "'";
}
else
{
$query = "INSERT INTO stock_fysieke_winkels (Fysieke_winkel_ID, Product_ID, Aantal)
VALUES ('". $_POST['winkel'] . "', '" .
$_POST['product']. "', '" .
$_POST['aantal']. "')";
echo "Er is een nieuw product toegevoegd bij winkel ". $_POST['winkel'] . "" ;
}
mysqli_query($link, $query) or die("Er is een fout opgetreden bij het uitvoeren van de query: \"$query\"");
谢谢!
答案 0 :(得分:1)
尝试使用以下方法更改您的更新查询:
UPDATE stock_fysieke_winkels
Set Aantal = '" .$_POST['aantal']. "'
WHERE Fysieke_winkel_ID = '". $_POST['winkel'] . "'
AND Product_ID = '" . $_POST['product']. "'
使用关键字" AND"结合多个条件" WHERE"子句。
答案 1 :(得分:1)
正如我在评论中所说,您在查询中错过了操作员AND
。由于存在多个条件,因此您需要添加AND
。这样做: -
$query = "UPDATE stock_fysieke_winkels Set Aantal = '" .$_POST['aantal']. "' WHERE Fysieke_winkel_ID = '". $_POST['winkel'] . "' AND Product_ID = '" . $_POST['product']. "'";
注意: - 如果需要其中任何一个,那么您可以使用OR
代替AND
。谢谢
答案 2 :(得分:0)
您错过了Where子句之间的关键字AND / OR。重写以下更新查询
$query = "UPDATE stock_fysieke_winkels
Set Aantal = '" .$_POST['aantal']. "'
WHERE Fysieke_winkel_ID = '". $_POST['winkel'] . "' OR/AND
Product_ID = '" . $_POST['product']. "'";