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


Обновление корзины покупателя


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

if ($_POST[UpdateButton] == "Update")

{

$conn2 = odbc_connect('Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\PHPTutorial\Ecommerce\databases\ecommerce.mdb','','');

foreach($_REQUEST as $key => $value)

{

if (strpos($key,"Q") === 0 )

{

$OrderItem = substr($key,1); $OrderQuantity = $value;

if (is_numeric($OrderQuantity))

{

if ($OrderQuantity == 0)

{

$sqlCartUpdate = "DELETE FROM ShopCart WHERE OrderNo='$_SESSION[OrderNo]' AND OrderItem='$OrderItem'";

}

else

{

$sqlCartUpdate = "UPDATE ShopCart SET OrderQuantity='$OrderQuantity' WHERE OrderNo='$_SESSION[OrderNo]' AND OrderItem='$OrderItem'";

} $rsCartUpdate = odbc_exec($conn2,$sqlCartUpdate);

} }

} odbc_close($conn2); }

Пример I.14.

Прежде всего, создается соединение с базой данных eCommerce.mdb. Объект множества записей (Recordset) здесь не требуется, так как обновления делаются непосредственно командами SQL, выполняемыми с помощью объекта соединения (Connection).

Затем применяется цикл foreach для итераций по именам и значениям, помещенным в массив $_REQUEST[] после отправки формы на сервер. Переменная с именем $key используется для ссылки на имена полей, находящиеся в массиве.

При просмотре элементов массива выполняется проверка того, что имя поля начинается с буквы "Q":

if (strpos($key,"Q") === 0 ) { }

Функция PHPstrpos() применяется для проверки, что первый символ (или символ в позиции 0) имени элемента управления формы совпадает с "Q". Если первый символ "Q", то это будет поле количества, содержащее значение для обновления корзины покупателя. Здесь важно отметить, что используется оператор сравнения PHP "===" ("идентично"), а не оператор сравнения "==" ("равно"). Это необходимо, потому что функция strpos() требует для проверки своих возвращаемых значений "===".

Затем сценарий определяет, какую надо обновить запись о продукте и каким является фактическое значение количества:




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



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