簡體   English   中英

MYSQL更新和刪除PHP while循環中的查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM