从PHP数组更新mysql数据库中的值
我正在查询数据库,在数组中插入结果值,然后对它们进行操作,然后我想使用数组中的mysql\u update更新受影响行中的每个值,这就是我遇到的问题 这是我的代码-请协助:从PHP数组更新mysql数据库中的值,php,mysql,arrays,sorting,multidimensional-array,Php,Mysql,Arrays,Sorting,Multidimensional Array,我正在查询数据库,在数组中插入结果值,然后对它们进行操作,然后我想使用数组中的mysql\u update更新受影响行中的每个值,这就是我遇到的问题 这是我的代码-请协助: name sellerid quantity ------------------------- john 12 10 joel 23 20 brian 40 10 让我们把它作为查询结果,现在有人订购了25件商品。程序将把这些商品分配给订购者,然后从卖家那里扣
name sellerid quantity
-------------------------
john 12 10
joel 23 20
brian 40 10
让我们把它作为查询结果,现在有人订购了25件商品。程序将把这些商品分配给订购者,然后从卖家那里扣除
$cursor="SELECT itemquantity,sellerid FROM mytable WHERE price='$price'";
//it is a table containing data about people selling their commodities
$foundItems = array();
// likely to be a parameter of a function...
$totalUnitsOrdered = 25;
// maps user to amount assigned from him
$assignedQuantityPerUser = array();
while ( $row = mysql_fetch_assoc( $cursor ) ) {
// Still order Quantity left?
if ( 0 < $totalUnitsOrdered ) {
if ( $row[ "itemquantity" ] <= $totalUnitsOrdered ) {
if (!isset($assignedQuantityPerUser[$row["sellerid"]])) {
$assignedQuantityPerUser[$row["sellerid"]] = 0;
}
// assign all of $row[ "itemquantity" ]
$totalUnitsOrdered -= 0 + $row[ "itemquantity" ];
$assignedQuantityPerUser[ $row[ "sellerid" ] ] += 0 + $row[ "itemquantity" ];
} else {
// assign all the rest: $totalUnitsOrdered
$totalUnitsOrdered = 0;
$assignedQuantityPerUser[ $row[ "sellerid" ] ] += $totalUnitsOrdered;
}
}
$newItem[] = $row[ "sellerid" ];
$newItem[] = $row[ "itemquantity" ];
// Append $newItem to the end of $foundItems
$foundItems[] = $newItem;
}
算法有三种情况 这是伪代码,不是精确的代码,希望你能理解
while($row= mysql_fetch_assoc($rec))
{
if(quantity for user is > total quantity ordered)
{
quantity of user -=total quantity ordered
update tableNamse set qty =quantity for user where userId=$row['id'];
exit while
}
else if(quantity for user = total quantity ordered)
{
quantity of user=0;
update tableNamse set qty =0 where userId=$row['id'];
exit while
}
else
{
total quantity ordered - = quantity of user
update tableNamse set qty =0 where userId=$row['id'];
continue while loop
}
}
-更新
if($row['itemquantity'] > $totalUnitsOrdered)
{
$qtyUser=$row['itemquantity']-$totalUnitsOrdered;
mysql_query("update tableName set itemQuantity=$qtyUser
where userId=$row['userId']" )
break; // exit while
}
-第三宗个案的最新资料
else
{
$totalUnitsOrdered-=$row['itemquantity'];
mysql_query("update tableName set itemQuantity=0
where userId=$row['userId']" )
}
此问题最近已发布:。我认为这不够清楚,因此缺乏必要的解释response@lng但很明显,这是一个不同的问题,与之前提出的问题不同。我尽可能地简化它。谢谢你,我明白了。你能帮我编写至少一个案例的代码吗。谢谢。我在编写第三个案例时遇到了麻烦,请帮忙。非常感谢。很抱歉打扰您,只是我对php和mysql还不熟悉。谢谢Hanks,但还是在第三种情况下,当索引0处的$totalUnitsOrdered>$row['itemquantity']时,它应该转到索引1处的$row['itemquantity'],依此类推,直到$totalUnitsOrdered=0,如何在数据库中包含一个while循环,直到$totalUnitsOrdered=0,并更新每一行,因为目前还没有实现。非常感谢。这是我在项目中的主要障碍。请再次帮助我。感谢NaveenIs代码不起作用。第三种情况下,$totalUnitsOrdered被当前用户数量减少,循环继续,首先检查$totalUnitsOrdered>0是否中断;,,如果$totalUnitsOrdered>0或者$totalUnitsOrdered=0,那么它应该是第二个