所以我有这个数据库表“userDeck”,有三列:idUser,idCard,amount。金额是一个计数器,用于跟踪用户添加了特定卡的卡数。现在我正在使用这个查询:
$query1 = "UPDATE userDeck SET amount=amount-$amount WHERE idCard=$idCard";
$result2 = mysql_query($query1) or die(mysql_error());
当用户想要删除他/她添加的卡片时。
这项工作正常,但如果您删除的卡多于列出的卡,则会继续低于0。我希望它在金额达到0时删除该行。
答案 0 :(得分:1)
您可以添加声明:
DELETE FROM userDeck WHERE idCard=$idCard and amount = 0
在更新后立即。
$query1 = "DELETE FROM userDeck WHERE idCard=$idCard and amount = 0";
$result2 = mysql_query($query1) or die(mysql_error());
答案 1 :(得分:0)
两种方式
amount = 0
答案 2 :(得分:0)
$query1 = "UPDATE userDeck SET amount=amount-$amount WHERE idCard=$idCard";
$result2 = mysql_query($query1) or die(mysql_error());
然后你可以在以下后运行:
$query_del = "DELETE FROM userDeck WHERE idCard=$idCard AND amount = 0";
mysql_query($query_del) or die(mysql_error());
答案 3 :(得分:0)
DELETE FROM userDeck WHERE amount<=0
答案 4 :(得分:0)
除了Gordon提供的解决方案之外,还要考虑将amount
的类型更改为UNSIGNED
(假设它是INTEGER类型),以及strict sql_mode。
如果您尝试将值设置为负值,则会引发错误。