我有这段代码来获取数据:
$resultsTicket = $mysqli->query("SELECT * FROM orders_history
WHERE customer_name = '$member_name'
AND order_method = 'EStock'
ORDER BY id ASC");
结果如下:
orders_history
----------------------------
unique_random quantity
----------------------------
12C3EDsE34e 5
sad234sadsa 7
从上面的结果中,在视图页面中,用户将选择他们想要选择的数量。例如,在第一行:他们从5个数量中选择3。提交后,数据将发布到另一个表中:
claim_history
----------------------------
unique_random claim
----------------------------
12C3EDsE34e 3
sad234sadsa 2
我现在的问题是如何自动更新第一个表(orders_history)中的数量。
orders_history
----------------------------
unique_random quantity
----------------------------
12C3EDsE34e 2
sad234sadsa 5
我已经尝试过这样但它似乎不起作用:
<?php
$customer_email=$member_email;
$resultsTicket = $mysqli->query("SELECT * FROM orders_history
WHERE customer_name = '$member_name'
AND order_method = 'EStock'
ORDER BY id ASC");
$mysqli->query ("UPDATE orders_history
LEFT JOIN estockClaims on estockClaims.transaction_id = orders_history.transaction_id
SET orders_history.quantity = orders_history.quantity - estockClaims.quantity;
");
if ($resultsTicket > 0) {
$i = 0;
$random = substr(str_shuffle(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ),0, 1) . substr(str_shuffle(aBcEeFgHiJkLmNoPqRstUvWxYz0123456789),0, 6);
while($obj = $resultsTicket->fetch_object()) {
答案 0 :(得分:1)
在claim_history中成功插入后,您可以更新sql,例如:
$mysqli->query("update orders_history set quantity = quantity - selectedQuantity where unique_random=your selected value");
//因为你有两个或更多的项目所以把它写在一个循环中。
如果你想实现这一点:更好地编写一些onchage事件,从每个select的视图触发它并相应地更新表。
但我认为你不应该在选择更新时更新表,在插入第二个表后更新它,否则你必须处理更多的问题。
答案 1 :(得分:1)
您可以在mysql中使用on update触发器:http://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html
答案 2 :(得分:1)
除了将数据发布到claim_history
表之外,您还可以运行更新查询:
$mysqli->query("UPDATE orders_history SET quantity = ".$newQuantity." WHERE unique_random = " . $uniqueRandom);