Как добавить сумму в корзину и оформить заказ в один клик?

У меня возникли проблемы с суммированием суммы в корзине. Мне нужно, чтобы корзина суммировала общее количество товаров, затем добавляла общую сумму в заказ, а затем, наконец, нажимала кнопку «Разместить заказ», чтобы иметь возможность заказать все внутри корзины.

В настоящее время я могу изменить количество, но мне нужно выбрать идентификатор продукта, а затем выбрать количество, вместо этого рядом с каждым элементом в корзине должна быть небольшая коробка, в которой я могу ввести количество.

Затем мне нужно подвести общий итог внизу, где складываются все товары, и при нажатии на кнопку «Разместить заказ» все товары в корзине должны быть заказаны за один раз.

В настоящее время я должен нажать кнопку «разместить заказ» для каждого элемента, чтобы разместить заказ, поэтому я должен идти вперед и назад, что не является правильным способом сделать это.

Пожалуйста, помогите мне, я все еще учусь.

заранее спасибо
Я предоставлю код.

<?php
//Start session
session_start();

$totalAll = 0;

//Include session details
require_once('auth.php');

//Include database connection details
require_once('connection/config.php');

//Connect to mysql server
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link) {
die('Failed to connect to server: ' . mysql_error());
}

//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
die("Unable to select database");
}

//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}

//checks if id is set in the url
if(isset($_GET['id'])){
//retrive the first quantity from the quantities table
$quantities=mysql_query("SELECT * FROM quantities")
or die("Something is wrong ... \n" . mysql_error());
$row=mysql_fetch_assoc($quantities);
$quantity_value = $row['quantity_value'];

//get id value
$food_id = $_GET['id'];

//retrive food_price from food_details based on $food_id
$result=mysql_query("SELECT * FROM food_details WHERE food_id='$food_id'") or die("A problem has occured ... \n" . "Our team is working on it at the moment ... \n" . "Please check back after few hours.");
$food_row=mysql_fetch_assoc($result);
$food_price=$food_row['food_price'];

//get member_id from session
$member_id = $_SESSION['SESS_MEMBER_ID'];

//define default values for quantity(got from $row), total($food_price*$quantity_value), and flag_0
$quantity_id = $row['quantity_id'];
$total = $food_price*$quantity_value;
$flag_0 = 0;//Create INSERT query
$qry = "INSERT INTO cart_details(member_id, food_id, quantity_id, total, flag) VALUES('$member_id','$food_id','$quantity_id','$total','$flag_0')";
$result = @mysql_query($qry);

//Check whether the query was successful or not
if($result) {
header("location: cart.php");
exit();
}else {
die("A problem has occured with the system " . mysql_error());
}
}
?>

0

Решение

Ваш код в настоящее время получает только один идентификатор из URL-адреса, но для расчета суммы по всей корзине вам нужны все идентификаторы в вашей корзине. Обычно они сохраняются в $ _SESSION. Вы можете просмотреть внутреннюю часть вашего сеанса с помощью этого кода: var_dump ($ _ SESSION); Также возможно, что идентификаторы сохраняются в базе данных в какую-то таблицу корзины. В вашем коде я не понимаю, почему вы просто получаете первый элемент из таблицы количеств. Я почти уверен, что таблица каким-то образом связана с таблицей еды (думаю, через food_id).

Если вы получили идентификаторы из вашего сеанса, ваш код должен выглядеть примерно так (не тестируется из-за операторов SQL):

<?php
$member_id = $_SESSION['SESS_MEMBER_ID']; //get member_id from session before the loop

$food_ids = array($id1, $id2, $id3); //you need all $food_id added to cart instead of just 1 from url, usally saved to $_SESSION

$grandTotal = 0;
foreach ($food_ids as $food_id) { //LOOP THROUGH IDs
//retrive quantity of food in cart from the quantities table
$quantities=mysql_query("SELECT * FROM quantities WHERE food_id='$food_id'") //there must be a connection between quantities and food so I added food_id="xxx"or die("Something is wrong ... \n" . mysql_error());
$row=mysql_fetch_assoc($quantities);
$quantity_value = $row['quantity_value'];

//retrive food_price from food_details based on $food_id
$result=mysql_query("SELECT * FROM food_details WHERE food_id='$food_id'")
or die("A problem has occured ... \n" . "Our team is working on it at the moment ... \n" . "Please check back after few hours.");
$food_row=mysql_fetch_assoc($result);
$food_price=$food_row['food_price'];//define default values for quantity(got from $row), total($food_price*$quantity_value), and flag_0
$quantity_id = $row['quantity_id'];
$total = $food_price*$quantity_value;
$grandTotal = $grandTotal + $total; //add total of this product to the $grandTotal from last time inside this loop
$flag_0 = 0;//Create INSERT query
$qry = "INSERT INTO cart_details(member_id, food_id, quantity_id, total, flag) VALUES('$member_id','$food_id','$quantity_id','$total','$flag_0')";
$result = @mysql_query($qry);

//Check whether the query was successful or not
if($result) {
header("location: cart.php");
exit();
}else {
die("A problem has occured with the system " . mysql_error());
}
} /*Now you have $grandTotal calculated*/?>
0

Другие решения

Других решений пока нет …