[英]MYSQL update and delete query in PHP while loop
我正在尝试更新用户投资组合表,以在用户出售项目份额时进行更新。 我想从股票中减去1,直到要出售的股票数量达到0。然后,当该项目的股票达到0时,我要从用户投资组合中删除该行。 我相信我必须使用while循环和TOP命令,因为用户经常对同一商品进行多次购买,因此它们存储在表的不同记录中。 我想我已经很接近了,但是我无法在循环中获取更新或删除查询。
while ($sharesToSell >0)
{
$sql="UPDATE TOP (1) portfolio SET shares= shares-1 WHERE
userid='".$userid."'AND songid='".$songID."';";
$result6 = $connection->query($sql);
$sharesToSell-=1;
if($sharesToSell>0)
{
$sql="DELETE FROM PORTFOLIO WHERE shares='0';";
$result7 = $connection->query($sql);
}
}
更新您的第一个查询并使用limit
而不是top
$sql="UPDATE TOP (1) portfolio SET shares= shares-1 WHERE
userid='".$userid."'AND songid='".$songID."';";
至
$sql="UPDATE portfolio SET shares= shares-1 WHERE
userid='".$userid."'AND songid='".$songID."' limit 1";
使用限制代替顶部
..当交易开始时,在以下地方调用以下代码。
$sql="Select shares From portfolio WHERE
userid='".$userid."'AND songid='".$songID."';";
$result = $connection->query($sql);
$row = $result->fetch_assoc()
$sharesToSell = $row["shares"]
if($sharesToSell > 0)
{
$sql="UPDATE portfolio SET shares = shares-1 WHERE
userid='".$userid."'AND songid='".$songID."';";
$result = $connection->query($sql);
}else
{
$sql="DELETE FROM PORTFOLIO WHERE
userid='".$userid."'AND songid='".$songID."';";
$result = $connection->query($sql);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.