Введение в программирование на PHP5


Добавление объектов в корзину покупателя - часть 2


<?php session_start(); $ItemNumber = $_GET[ItemNumber]; $Category = $_GET[Category]; $Criterion =$_GET[Criterion]; $OrderNo = $_SESSION[OrderNo]; $OrderDate = date('n/d/y');

if ($_POST[BuyButton] == "Buy Now") {

$OrderItem = $_GET[OrderItem]; $conn2 = odbc_connect('Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\PHPTutorial\Ecommerce\databases\ecommerce.mdb','',''); $sqlCart = "SELECT OrderNo,OrderItem FROM ShopCart WHERE OrderNo ='$OrderNo'"; $rsCart = odbc_exec($conn2,$sqlCart);

while ($row = odbc_fetch_array($rsCart)) { if ($row[OrderNo] == $OrderNo && $row[OrderItem] == $OrderItem) { $update = true;

}

}

if (!$update) { $sqlInsert = "INSERT INTO ShopCart (OrderNo,OrderItem,OrderDate,OrderQuantity) Values ('$OrderNo', '$OrderItem','$OrderDate,1)"; $rsInsert = odbc_exec($conn2,$sqlInsert); } else {

$sqlUpdate = "Update ShopCart SET OrderQuantity = OrderQuantity + 1 WHERE OrderNo = '$OrderNo' AND OrderItem = '$OrderItem'"; $rsUpdate = odbc_exec($conn2,$sqlUpdate); } header("Location:shopcart.php"); } ?>

Пример I.11.

Новая запись ShopCart заполняется четырьмя значениями. OrderNo получают из объекта сеанса — $_SESSION[OrderNo]. OrderItem передается на эту страницу через строку запроса. OrderDate определяется текущей датой системы, полученной с помощью функции date(). OrderQuantity задается как 1. Когда объект выбирается в начале для покупки, мы автоматически задаем заказанное количество как 1. Покупатель может изменить это количество на странице корзины покупателя.

Мы имеем здесь также дело с ситуацией, в которой заказчик может попытаться купить один и тот же продукт несколько раз, намеренно или по неосторожности. Наше "бизнес-правило" говорит, что единовременно может быть заказан только один объект (хотя покупатели будут иметь возможность изменить заказанное количество на странице корзины покупателя). Мы не хотим, чтобы один и тот же объект появлялся несколько раз в корзине покупателя.

Такая ситуация легко решается начальной проверкой того, что запись для этого продукта уже существует в таблице ShopCart. Оператор SQL SELECT и цикл по возвращаемому множеству записей выполняют нужную проверку:




Начало  Назад  Вперед



Книжный магазин