[英]Updating values in a mysql database from a PHP array
我正在查詢數據庫,將結果值插入數組中,然后對其進行操作,此后,我想使用數組中的mysql_update
更新受影響的行中的每個值,這就是我遇到的問題。
這是我的代碼-請協助:
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;
}
有3種情況(算法),這是偽代碼,不是確切的代碼,我希望您能理解
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']" )
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.