Я создаю сайт с корзиной покупок. Мне не нужна какая-либо специальная функциональность, поэтому я сама создаю тележку, а не интегрирую любую готовую. Мои продукты не имеют предопределенной цены в базе данных. Цена генерируется динамически на основе значений, введенных пользователем на странице продукта. Таким образом, пользователь выбирает некоторые спецификации, вводит количество и получаю следующие значения:
Item ID
Количество
Итоговая цена
Мне нужно сохранить эти значения в переменной $ _SESSION, а затем запрограммировать ее, когда это необходимо, чтобы получить результаты и распечатать их в корзине покупок. Проблема в том, что есть много продуктов, и мне нужно сохранить все эти значения (количество, итоговая цена) для выбранного продукта. Тем не менее, как сохранить Item ID, количество и общую цену в переменной $ _SESSION и связать эти значения друг с другом?
Спасибо за помощь.
EDIT: Мой код реализует предложения Майкла:
$itemid = $db->escape($_POST['productid']); $itemquantity = $db->escape($_POST['itemquantity']); $totalprice = $db->escape($_POST['totalprice']); $_SESSION['items'] = array(); $_SESSION['items'][$itemid] = array('Quantity' => $itemquantity, 'Total' => $totalprice); var_dump($_SESSION);
Используйте идентификатор элемента в виде ключа массива, который содержит массив других элементов:
// Initialize the session session_start(); // Parent array of all items, initialized if not already... if (!isset($_SESSION['items']) { $_SESSION['items'] = array(); } // Add items based on item ID $_SESSION['items'][$itemID] = array('Quantity' => $quantity, 'Total' => $total); // Another item... $_SESSION['items'][$another_itemID] = array('Quantity' => $another_quantity, 'Total' => $another_total); // etc...
И получить к ним доступ:
// For item 12345's quantity echo $_SESSION['items'][12345]['Quantity']; // Add 1 to quantity for item 54321 $_SESSION['items'][54321]['Quantity']++;