我有一个购物车,它有一个文本框来更新每个商品的数量。当用户单击更新按钮时,我循环浏览每个项目,并在保存购物车信息的数据库表中更新它们的数量。现在我添加了一个礼品卡功能,我遇到了一个问题。当用户更新某个价格的礼品卡的数量时,我不仅需要更新购物车表,还需要创建另一张具有唯一卡号的礼品卡。如果在foreach循环中物品是礼品卡,我正试图弄清楚如何添加另一张礼品卡。这是我更新群的代码:
foreach ($_POST['quantity'] as $sku => $qty) {
list($pid, $szid) = explode("-", $sku);
if ($pid) { $pid=trim($pid);}
if ($szid) { $szid=ltrim($szid);}
if (isset($pid, $szid)) {
$qty = (filter_var($qty, FILTER_VALIDATE_INT, array('min_range' => 0))) ? $qty : 1;
$r = mysqli_query($dbc, "CALL update_cart('$uid', $pid, $qty, $szid)");
}
}
这段代码的工作原理正是我希望它更新购物车项目的数量。现在我不知道如何更改它来检查$pid是否为1,并在礼品卡表中添加一张新的礼品卡(如果是)。这是我最好的尝试,但似乎不起作用:
foreach ($_POST['quantity'] as $sku => $qty) {
list($pid, $szid) = explode("-", $sku);
if ($pid) { $pid=trim($pid);}
if ($szid) { $szid=ltrim($szid);}
if (isset($pid, $szid)) {
$qty = (filter_var($qty, FILTER_VALIDATE_INT, array('min_range' => 0))) ? $qty : 1;
$r = mysqli_query($dbc, "CALL update_cart('$uid', $pid, $qty, $szid)");
while($pid == 1 ) {
$gcn = md5(uniqid('biped', true));
$card = 'GC'.$gcn.'';
$amt = $_POST['price'];
// Add to gift card table
$r = mysqli_query($dbc, "CALL add_gift_card('$szid', '$uid', '$card', '$amt')");
}
}
}
我需要代码来检查礼品卡$pid有多少$qty,并对每个$qty运行add_gift_card查询,其中$pid等于1。
哦,这是表格,如果你想看的话:
echo'<input type="text" class="cart-item-quantity" name="quantity['.$cart['sku'].']" value="'.$cart['quantity'].'" size="" />';
echo'<input type="hidden" name="price" value="'.$price.'" />';
任何帮助或指导都会很棒。
if ($pid == 1) {
for ($i = 0; $i < $qty; $i++) {
$gcn = md5(uniqid('biped', true));
$card = 'GC'.$gcn.'';
$amt = $_POST['price'];
// Add to gift card table
$stmt = mysqli_prepare($dbc, "CALL add_gift_card(?, ?, ?, ?)";
mysqli_stmt_bind_param($stmt, 'sisi', $szid, $uid, $card, $amt);
$r = mysqli_stmt_execute($stmt);
}
}