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