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


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


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

Пример I.14.

(html, txt)

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

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

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

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

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

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

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

Мы знаем, что код продукта, связанный с полем количества, содержится в переменной $key. Фактически это будут шесть правых символов имени поля. Поэтому эти шесть символов извлекаются из переменной с помощью функции PHP substr() и помещаются в переменную $OrderItem. Затем значение переменной $value, связанное с этим полем, присваивается переменной $OrderQuantity. Теперь у нас есть два фрагмента информации, необходимых для обновления поля $ItemQuantity этого продукта в таблице ShopCart.

Прежде чем обновлять количество продукта, необходимо проверить, что заказчик ввел число. В поле можно случайно ввести недействительный символ. Поэтому для $OrderQuantity выполняется числовая проверка.




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



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