Как вывести общее количество товаров? PHP
У меня возникла проблема. Я написал корзину товаров, все вроде прекрасно работает, но я не могу сделать одну вещь: "Вывод общего количества товаров". Подскажите пожалуйста, как это сделать.
if ($action == "show") {
if (!(isset($_SESSION['cart']))) {
echo "У вас нет товаров";
die();
}
$cart = $_SESSION['cart'];
if (count($cart) == 0) {
echo "У вас нет товаров";
die();
}
$cnt = array();
foreach ($cart as $id => $value) {
$sql = "SELECT * FROM `tovar` WHERE `id` = '$id'";
$sql_result = mysqli_query($dbhandle, $sql);
$cnt[$id] = $value;
while ($row = $sql_result->fetch_assoc()) {
echo "
<p>Идентификатор товара: ".$row['id']."</p>
<p>Наименование товара: ".$row['name']."</p>
<p>Количество товара: ".$value."</p>
<p>Стоимость товара: ".$row['cost']."</p>
<p>Описание товара: ".$row['desc']."</p>
<input type='button' value='Удалить товар из корзины' onclick='delFromCart(".$row['id'].")'>
<input type='button' value='+' onclick='plustovar(".$row['id'].")'>
<input type='button' value='-' onclick='minustovar(".$row['id'].")'>
";
}
}
}
if ($action == 'add') {
$cart = $_SESSION['cart'];
$id = $_POST['id'];
if (isset($cart[$id])) {
$cart[$id]++;
} else {
$cart[$id] = 1;
}
$_SESSION['cart'] = $cart;
}
if ($action == 'del') {
$id = $_POST['id'];
$cart = $_SESSION['cart'];
if (isset($cart[$id])) {
unset($cart[$id]);
}
$_SESSION['cart'] = $cart;
}
if ($action == 'plus') {
$id = $_POST['id'];
$cart = $_SESSION['cart'];
if (isset($cart[$id])) {
$cart[$id]++;
}
$_SESSION['cart'] = $cart;
}
if ($action == 'minus') {
$id = $_POST['id'];
$cart = $_SESSION['cart'];
if (isset($cart[$id])) {
$cart[$id]--;
}
if ($cart[$id] === 0) {
unset($cart[$id]);
}
$_SESSION['cart'] = $cart;
}
Ответы (3 шт):
Автор решения: VikiMayson
→ Ссылка
Присвоить товарам категорию, и через select отправить запрос по типу.
SELECT COUNT(*) as count FROM product WHERE category = 'носки'
Вариант 2
$result = SELECT * FROM product WHERE category = 'носки'
count($result);
Автор решения: Денис
→ Ссылка
Попробуйте так:
$generalAmount = 0;
foreach($_SESSION['cart'] as $id => $count){
$generalAmount += $count;
}
echo "Общее кол-во товаров: ".$generalAmount;
Автор решения: Ikramiddin uulu Nurbek
→ Ссылка
Почему бы тебе сразу же не записать количество в сессию? Например $cart['totalAmount'] += 'количество'