我正在尝试更新用户投资组合表以在用户出售项目份额时进行更新。我想从股票中减去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";


使用限制代替顶部

关于php - MYSQL更新和删除PHP while循环中的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43446399/

10-10 18:16