За последние 24 часа нас посетил 19381 программист и 1610 роботов. Сейчас ищут 1035 программистов ...

Двумерный массив в сессию

Тема в разделе "PHP для новичков", создана пользователем letexa, 25 ноя 2010.

  1. letexa

    letexa Активный пользователь

    С нами с:
    25 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Я в php новичок, хочу узнать мнение профессионалов.
    Пытаюсь реализовать корзину покупок для интернет-магазина. По нажатию на ссылку "купить" в файл корзины методом GET отправляются 3 переменные $article, $name, $price. Там создаётся сессия, в которую отправляются эти переменные.
    Вопрос: как в сессии реализовать двумерный ассоциативный массив из нескольких рядов (в зависимости от количества выбранных покупок). У каждого ряда - идентификатор переменная $article (артикул товара). При нажатии на ссылку "купить" ряд добавляется, при этом у каждого элемента массива должен быть идентификационный ключ, чтобы потом можно было с ними выполнять определенные операции (сложение цены). Единственное что у меня получилось - это сформировать одномерный массив:
    Помогите кто может! Дайте дельный совет!
     
  2. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    лучше все пихать в таблицу, ключ записи это ид сессии пользователя
     
  3. letexa

    letexa Активный пользователь

    С нами с:
    25 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    А поподробнее можно описать процедуру, хотя бы на словах
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    я на сессиях корзину делал)
    Трехмерный массив
    Код (Text):
    1. $_SESSION['products']['id_product1']['price']
    2. $_SESSION['products']['id_product1']['name']
    3. $_SESSION['products']['id_product1']['count']
    4.  
    5. $_SESSION['products']['id_product2']['price']
    6. $_SESSION['products']['id_product2']['name']
    7. $_SESSION['products']['id_product2']['count']
    Типа такого. Ну а данные о продуктах естественно в базе лежали. При добавлении нового продукта - проверял есть ли такой id в массиве $_SESSION['products'], если нет - делал запрос к базе, вытягивал информацию по цене, описанию и прочее.

    vikrorpert По скорости работы с базой разницы практически не было (была и реализация как ты говоришь - всё в таблице, ключ - session_id), у меня основные тормоза были с отрисовкой DOM (там всё на AJAX, без перезагрузки)
     
  5. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    tommyangelo
    да тут дело не в скорости. я сторонник хранения всего что можно в базе, в сессии только ид юзера
    как вариант хранить в сессии класс, а уже в классе делать всю логику хранения товаров
     
  6. vikrorpert

    vikrorpert Активный пользователь

    С нами с:
    13 окт 2010
    Сообщения:
    984
    Симпатии:
    10
    куда подробнее? все что пишете в сессию пишете в таблицу базы данных, при генерации формы заказа- считываете с таблицы
     
  7. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    vikrorpert
    Хз, может у меня корзинка простая была - 2х функций достаточно. Первая проходит по корзинке и обсчитывает изменения с учетом входных параметров, вторая тупо отрисовывает html =)))

    Онлайн-заказ жратвы)))))
     
  8. letexa

    letexa Активный пользователь

    С нами с:
    25 ноя 2010
    Сообщения:
    13
    Симпатии:
    0
    Ладно, попробую через таблицу.
    Спасибо!