PHP while循环中的MYSQL更新和删除查询
我正在尝试更新一个用户公文包表,以便在用户出售某个项目的份额时进行更新。我想从股票中减去一,直到所需的卖出股票数量达到0。然后,当该项目的份额达到0时,我想从用户组合中删除该行。我相信我必须使用while循环和TOP命令,因为用户经常对同一物品进行多次不同的购买,所以它们存储在表中的不同记录中。我想我已经很接近了,但是我无法在我的循环中运行update或delete查询PHP while循环中的MYSQL更新和删除查询,php,mysql,sql,while-loop,sql-delete,Php,Mysql,Sql,While Loop,Sql Delete,我正在尝试更新一个用户公文包表,以便在用户出售某个项目的份额时进行更新。我想从股票中减去一,直到所需的卖出股票数量达到0。然后,当该项目的份额达到0时,我想从用户组合中删除该行。我相信我必须使用while循环和TOP命令,因为用户经常对同一物品进行多次不同的购买,所以它们存储在表中的不同记录中。我想我已经很接近了,但是我无法在我的循环中运行update或delete查询 while ($sharesToSell >0) { $sql="UPDATE TOP (1) portfolio
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."';";
到
使用limit代替top。在事务开始时调用下面的代码
$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);
}
MySQL中没有
TOP
,请改用LIMIT
。
$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);
}