我需要从循环中保存数组中的数据,以便插入到数据库中。
这是代码:
$dataset = array();
for ($i = 1; $i <= $_POST['num_cart_items']; $i++) {
$dataset[item_name] = $_POST['item_name' + $i];
$dataset[item_number] =$_POST['item_number' + $i];
$dataset[mc_gross] =$_POST['mc_gross_' + $i];
}
我不知道它是否可以像这样使用:
$sql = mysqli_query($conexion_temporal,"INSERT INTO transacciones (item_name, item_number, payment_status ,mc_gross) VALUES ('$dataset[item_name]', '$dataset[item_number]','$payment_status','$dataset[mc_gross]')");
所以,如果我买了2件物品,我可以这样展示:
项目:球拍,勺子
项目编号:d67,t87
价格:4500,3789
所以当我只买一件商品时使用。
答案 0 :(得分:0)
使用多维数组保存项目,以便在循环时不覆盖值。
$dataset = array();
for ($i = 1; $i <= $_POST['num_cart_items']; $i++) {
$dataset[$i]['item_name'] = $_POST['item_name' + $i];
$dataset[$i]['item_number'] =$_POST['item_number' + $i];
$dataset[$i]['mc_gross'] =$_POST['mc_gross_' + $i];
}
当插入SQL时,在语句周围使用foreach循环。
类似的东西:
foreach($dataset as $item){
$sql = mysqli_query($conexion_temporal,"INSERT INTO transacciones (item_name, item_number, payment_status ,mc_gross) VALUES (".$item['item_name'].", ".$item['item_number'].",".$payment_status.",".$item['mc_gross'].")");
}
答案 1 :(得分:0)
$keys = array_keys($dataset);
$str = ''.
foreach($dataset as $k => $v){
$str .= '\''.$v.'\'';
}
$presql = '"INSERT INTO transacciones ('.implode(',',$keys).')VALUES('.$str.')';
$sql = mysqli_query($presql);
答案 2 :(得分:0)
$dataset = '';
for ($i = 1; $i <= $_POST['num_cart_items']; $i++) {
$dataset .= "('" . $_POST['item_name'] . "',";
$dataset .= "'" . $_POST['item_number'] . "',";
$dataset .= "'" . $payment_status . "',"; // not sure where this one is coming from
$dataset .= "'" . $_POST['mc_gross_'] . "')";
if ($i != $_POST['num_cart_items']) $dataset .= ',';
}
$sql = mysqli_query($conexion_temporal,"INSERT INTO transacciones (item_name, item_number, payment_status ,mc_gross) VALUES $dataset");
如果数字未存储为文本,则应删除该值周围的引号。
答案 3 :(得分:0)
foreach中的用户多维,例如:
$dataset = array();
for ($i = 1; $i <= $_POST['num_cart_items']; $i++) {
$dataset['item_name'][] = $_POST['item_name_'.$i];
$dataset['item_number'][] =$_POST['item_number_'.$i];
$dataset['mc_gross'][] =$_POST['mc_gross_'.$i];
}
与&#34;,#34;内爆每个元素:
$item_name = implode(",",$dataset['item_name']);
$item_number = implode(",",$dataset['item_number']);
$mc_gross = implode(",",$dataset['mc_gross']);
在插入查询中使用该implode字符串,如:
$sql = mysqli_query($conexion_temporal,"INSERT INTO transacciones (item_name, item_number, payment_status ,mc_gross) VALUES ('$item_name', '$item_number','$payment_status','$mc_gross')");
注意:请记住Shaiful Islam
在评论中描述的概念