Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу разобраться с корзиной... 
V
    Опции темы
kulikoff
Дата 13.12.2007, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: нет
Всего: 1



Помогите реализовать корзину для Интерне-магазина. Мож, посоветуйте, как лучше. Я пока думаю, что делать буду через сессиию. Добавление в корзину товара будет осуществляться таким способом:
Код

if (isset($_SESSION['cart'][$good_id])) {
    $name='q'.$good_id;
    $_SESSION['cart'][$good_id]=$_SESSION['cart'][$good_id]+$_POST[$name];
} else {
$name='q'.$good_id;
    $_SESSION['cart'][$good_id]=$_POST[$name];
}

Массив товаров в корзине реализуется, как двумерный массив, где второй индекс есть ид товара. Значением ключа есть количество выбранного товара. В этом коде проверяется, если ключ уже есть в массиве, то его значение увеличивается на кол-во заказанных единиц товара, если нет - то просто создаем его и присваиваем значение, полученное из формы о кол-ве заказанного товара.
Теперь у меня появилась проблема - как вывести содержимое этого массива? ведь я ж не знаю имя второго ключа в массиве. Подскажите. плиз!
PM MAIL WWW ICQ Skype   Вверх
Feldmarschall
Дата 13.12.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Грамотно организована корзина. Не часто встретишь такой правильный подход. Непонятно только, зачем там буква "q".
А выводить - просто: $_SESSION['cart'] - это массив. Массив обычно выводят перебором. foreach

Добавлено через 1 минуту и 57 секунд
Стоп. А откуда берется это $good_id? там выше этого кода идет перебор массива $_POST в цикле?

PM   Вверх
kulikoff
Дата 13.12.2007, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: нет
Всего: 1



В каталоге возле каждого товара сделана форма, куда вводиться кол-во заказанных единиц товара и в кнопке - обработчике (по факту - картинка. которая вызывает обработчик формы - "добавитель" в корзину,который приведен выше). Так вот там заодно и передается код товара и кол-ва. Код - методом GET $good_id и кол-во переменной $_POST[$name]
И можно помочь кодом, как использовать функцию foreach? Пробовал использовать её, но не получается что-то...
PM MAIL WWW ICQ Skype   Вверх
Feldmarschall
Дата 13.12.2007, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



если код передается в адресной строке (а не методом GET, конечно, поскольку метод у тебя POST), то тогда это будет не $good_id, а $_GET['good_id']

А напиши - что у тебя не получилось? Я поправлю. А то неблагодарная какая-то это работа - писать. Вот так пишешь, пишешь человеку, а он вдруг как ляпнет: "мне не это нужно было совсем!". Или вообще не увидел, стал делать по-своему.

Какие там сложности? У тебя есть массив $_SESSION['cart']. подставляешь его первым операндом в foreach. запись делаешь расширенную, ту, что с =>
пример есть в мануале. Там его писали люди гораздо более продвинутые, чем я. Почему бы у них не взять?
PM   Вверх
kulikoff
Дата 13.12.2007, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: нет
Всего: 1



Спасибо большое! Осенило, что там и к чему. Как я сам не смог понять, как работать с этой функцией? Аж стыдно...
Код

foreach ($_SESSION['cart'] as $good_id => $qty) {
        echo("<br>$good_id");
        echo("$qty");
    }

Всё просто и понятно. ещё раз спасибо!
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.