Извлечение объектов корзины покупателя
Объекты в корзине покупателя заказчика соответствуют номеру заказа и извлекаются с помощью следующей команды SQL:
$sql="SELECT OrderItem, OrderQuantity FROM ShopCart WHERE OrderNo = '$_SESSION[OrderNo]'";
Получаемое множество записей $rsCart содержит для каждой записи два выбранных поля OrderItem и OrderQuantity. Эти поля присваиваются переменным. Два других поля в записях (OrderNo и OrderDate) не требуются для нашей цели. Теперь необходимо выполнить итерации по записям и создать таблицу строк с выбранными объектами.
Однако мы еще не получили всю информацию, которая выводится в строке. Кроме OrderItem и OrderQuantity, содержащихся в корзине покупателя, таблица выводит название товара и его цену. Эти значения находятся в таблице Products. Поэтому эти поля ItemTitle и ItemPrice извлекают для соответствующего продукта, создавая множество записей $rsProd и выполняя оператор SQL.
$sqlProd = "SELECT ItemTitle, ItemPrice FROM Products WHERE ItemNumber = '$OrderItem'";
Эти значения также присваиваются переменным.
Для каждой выводимой строки объекта выводится также объем покупки. Переменная $OrderAmount вычисляется умножением заказанного количества ($OrderQuantity) на цену продукта ($OrderPrice). Также, когда сценарий выполняет итерации по записям корзины покупателя, значение $OrderTotal накапливается путем сложения по очереди всех $ItemAmount. Отметим, что переменная OrderTotal инициализируется как 0 перед началом цикла вывода.
Теперь собрана вся информация, необходимая для вывода строки таблицы:
echo "<tr> <td>$OrderItem </td> <td>$OrderTitle</td> <td><input type=\"text\" name=\"Q$OrderItem\" size=\"2\" class=\"qtybox\" value=\"$OrderQuantity\"></td> <td style=\"text-align:right\">$$OrderPrice</td> <td style=\"text-align:right\">$$OrderAmount</td> </tr>";
Мы выводим значения переменных, содержащих извлеченные из таблиц ShopCart и Products данные и вычисленный объем. В случае объектов $OrderPrice и $OrderAmount используется функция PHP number_format(), чтобы вывести значения в формате с двумя десятичными позициями после запятой. Теперь надо объяснить, что происходит с полем OrderQuantity.