![](/img/trans.png)
[英]PHP - How can I insert multiple items from a shopping cart into the database?
[英]How can i insert multiple products from the shopping cart into the database as individual rows
我是對此的初學者,我事先表示歉意。 我整夜都在沖浪,試圖找到問題的答案。 然后我看到了這個面向程序員的平台。
這是我的問題,我的功能運行正常。 我有這個購物車,用戶選擇了很多產品並提交。 但這只會在我的數據庫中插入一個值。 誰能幫我?
購物車
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Shopping_cart extends CI_Controller {
function index()
{
$this->load->model("shopping_cart_model");
$data["product"] = $this->shopping_cart_model->fetch_all();
$this->load->view("shopping_cart", $data);
if (isset($_POST['submitbtn'])) {
$data = array(
"product_name" => $_POST["cart_name"],
"quantity" => $_POST["cart_qty"],
"product_price" => $_POST["cart_price"]
);
$this->db->insert('occasion', $data);
$this->session->set_flashdata("success", "Your account has been
reserved");
redirect("shopping_cart","refresh");
}
}
function add()
{
$this->load->library("cart");
$data = array(
"id" => $_POST["product_id"],
"name" => $_POST["product_name"],
"qty" => $_POST["quantity"],
"price" => $_POST["product_price"]
);
$this->cart->insert($data); //return rowid
echo $this->view();
}
function load()
{
echo $this->view();
}
function remove()
{
$this->load->library("cart");
$row_id = $_POST["row_id"];
$data = array(
'rowid' => $row_id,
'qty' => 0
);
$this->cart->update($data);
echo $this->view();
}
function clear()
{
$this->load->library("cart");
$this->cart->destroy();
echo $this->view();
}
function view()
{
$this->load->library("cart");
$output = '';
$output .= '
<h3>Shopping Cart</h3><br />
<div class="table-responsive">
<div align="right">
<button type="button" id="clear_cart" class="btn btn-warning">Clear
Cart</button>
</div>
<br />
<table class="table table-bordered">
<tr>
<th width="40%">Name</th>
<th width="15%">Quantity</th>
<th width="15%">Price</th>
<th width="15%">Total</th>
<th width="15%">Action</th>
</tr>';
$count = 0;
foreach($this->cart->contents() as $items)
{
$count++;
$output .= '
<tr>
<td>'.$items["name"].' <input type="hidden" id="cart_name" name="cart_name" value="'.$items["name"].'" /></td>
<td>'.$items["qty"].' <input type="hidden" id="cart_qty" name="cart_qty" value="'.$items["qty"].'" /></td>
<td>'.$items["price"].' <input type="hidden" id="cart_price" name="cart_price" value="'.$items["price"].'" /></td>
<td>'.$items["subtotal"].'</td>
<td><button type="button" name="remove" class="btn btn-danger btn-xs remove_inventory" id="'.$items["rowid"].'">Remove</button></td>
</tr>
';
}
$output .= '
<tr>
<td colspan="4" align="right">Total</td>
<td>'.$this->cart->total().'</td>
</tr>
</table>
</div>
';
if($count == 0)
{
$output = '<h3 align="center">Cart is Empty</h3>';
}
return $output;
}
}
$data = array(
"product_name" => $_POST["cart_name"],
"quantity" => $_POST["cart_qty"],
"product_price" => $_POST["cart_price"]
);
$this->db->insert('occasion', $data);
1)假設您使用$ _POST ['submitbtn']驗證了購物車,看來您只是在插入一種產品。
2)如果已經將它們存儲在卡庫中,為什么還要從$ _POST接收產品?
也許這可以幫助:
foreach($this->cart->contents() as $items)
{
$data = array(
"product_name" => $items["name"],
"quantity" => $items["qty"],
"product_price" => $items["price"]
);
$this->db->insert('occasion', $data);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.