我想提出一个在线购物车。所以我想确认我的产品后,更新我的股票总...我能够从用户捕捉的数量,我能够从MYSQL抓住我的数据。现在,我要让我从MYSQL量和用户量之间的差值的阵列和购买后更新我的股票总...
我的MySQL阵列输出为:
的print_r($数量);
Array ( [0] => Array ( [stock] => 100 ) [1] => Array ( [stock] => 100 ) [2] => Array ( [stock] => 50 ) [3] => Array ( [stock] => 100 ) )
和
我的用户阵列输出为:
的print_r($ _SESSION [ 'productqty']);
Array ( [0] => 10 [1] => 12 [2] => 14 [3] => 16 )
我想打一个阵列,这将是像
Array ( [0] => 90 [1] => 88 [2] => 36 [3] => 84 )
该阵列是两个阵列之间的差异,它会在mysqli的查询...我已经试过各种更新。请帮我...
如果索引等于下面的代码可以工作:
$remaining = [];
// iterate $qty rows and fill $remaining array
foreach($qty as $index => $entry) {
$remaining[] = $entry['stock'] - $_SESSION['productqty'][$index];
}
var_dump($remaining);
编辑:存放在数据库中更新股票
首先有必要选择在第一个查询产品的ID,这样您能够更新它们。这一步应该会导致以下转储(除了正确的ID)
Array (
[0] => Array ( [id] => 12, [stock] => 100 )
[1] => Array ( [id] => 37, [stock] => 100 )
[2] => Array ( [id] => 39, [stock] => 50 )
[3] => Array ( [id] => 50, [stock] => 100 )
)
现在,你可以通过产品的IDS安装到你的阵列优化您的计算:
remaining = [];
foreach($qty as $index => $entry) {
$remaining[] = [
'id_product' => $entry['id'],
'stock' => $entry['stock'] - $_SESSION['productqty'][$index]
];
}
现在,你可以存储你更新的股票:
foreach($remaining as $entry) {
// Perform your SQL-Operation, something like:
// UPDATE products SET stock = $entry['stock'] WHERE id = '$entry['id']
}
注意:请确保您对SQL-注射应用。看看:https://en.wikipedia.org/wiki/SQL_injection