[英]How can i insert multiple products from the shopping cart into the database as individual rows
I am a beginner on this and i apologize in advance. 我是对此的初学者,我事先表示歉意。 I've been surfing all night long trying to find the answer for my question.
我整夜都在冲浪,试图找到问题的答案。 Then i saw this platform for programmers.
然后我看到了这个面向程序员的平台。
Here's my problem, My Function are working really fine. 这是我的问题,我的功能运行正常。 I have this shopping cart and user choose many products and submit it.
我有这个购物车,用户选择了很多产品并提交。 But it only inserting one value to my database.
但这只会在我的数据库中插入一个值。 Can anyone help me?
谁能帮我?
shopping_cart 购物车
<?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) assuming you validate the shopping cart with $_POST['submitbtn'] It looks like you're just inserting one product. 1)假设您使用$ _POST ['submitbtn']验证了购物车,看来您只是在插入一种产品。
2) Why are you receiving product from $_POST if you already store them in card library ? 2)如果已经将它们存储在卡库中,为什么还要从$ _POST接收产品?
Maybe this could help : 也许这可以帮助:
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.