ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Добавление элементов в тележку

Добавление элементов в тележку

Когда пользователь попадает на страницу show_cart.php в результате щелчка на кнопке Добавить в корзину, перед выводом содержимого тележки необходимо выполнить определенную подготовительную работу. В частности в тележку следует поместить соответствующий элемент.

Во-первых, если посетитель пока еще ничего не помещал в тележку, то собственно тележки и нет, поэтому ее необходимо создать:

if(!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
$_SESSION['items'] = 0;
$_SESSION['total_price'] ='0.00';
}

Поначалу тележка пуста.

Во-вторых, когда известно, что тележка создана, в нее можно добавить элемент:

if(isset($_SESSION['cart'][$new]))
$_SESSION['cart'][$new]++;
else
$_SESSION['cart'][$new] = 1;

Здесь мы проверяем, не содержится ли данный товар в тележке. Если это так, количество данного товара увеличивается на единицу, в противном случае в тележку добавляется новый элемент.

В-третьих, мы должны определить общую сумму заказа и количество товаров в тележке. Для этого применяются функции calculate_price() и calculate_iyems():

$_SESSION['total_price'] = calculate_price($_SESSION['cart']);
$_SESSION['items'] = calculate_items($_SESSION['cart']);

Эта функция содержится в библиотеке book_fns.php.

Функция calculate_price() — вычисляет и возвращает общую стоимость содержимого тележки для покупок

<?php
function calculate_price($cart)
{
// Вычисляет общую стоимость всех элементов тележки
$price = 0.0;
if(is_array($cart))
{
$conn = db_connect();
foreach($cart as $isbn => $qty)
{
$query = "select price from books where isbn='$isbn'";
$result = $conn->query($query);
if ($result)
{
$item = $result->fetch_object();
$item_price = $item->price;
$price +=$item_price*$qty;
}
}
}
return $price;
}
?>

Несложно заметить, что функция calculate_price() выполняет поиск в базе данных цены каждого элемента, помещенного в тележку. Этот процесс требует времени, поэтому, чтобы не повторять его чаще, нежели это необходимо, цена(равно как и общее количество элементов) сохраняется в переменных сеанса. Повторные вычисления выполняются только в случаях, когда содержимое тележки изменяется.

Функция calculate_items() — вычисляет и возвращает общее количество элементов в тележке

<?php
function calculate_items($cart)
{
// Подсчитывает общее количество элементов в тележке
$items = 0;
if(is_array($cart))
{
$items=array_sum($cart);
}
return $items;
}
?>

Функция calculate_items() намного проще — она лишь суммирует количество всех элементов тележки с целью получения итогового значения. При этом вызывается функция array_sum(). Если массива еще нет (тележка пуста), функция calculate_items() возвращает 0.