Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: PHP и БД-Сессии - как реализовать конкретную задачу?
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Есть такое понятие как корзина.
Я под этим понимаю складирование информации о конкретном товаре, к которой потом можно вернуться и пакетно обработать.
А вот если единица "товара" - это набор выбранных пользователем параметров?
То есть человек навыбирал из формы те параметры, которые ему нужны. Оформил заявку, содержащую эти параметры.
Если хочется дать ему возможность сформировать несколько наборов параметров, а потом единой заявкой все отправить - я так понимаю помогут сессии.
Так и реализовал - в сессию записывается первый набор параметров. После повторного выбора параметров, на сводной странице выводятся сразу два набора параметров. Сводная заявка, занавес. Все работает.
НО! Это справедливо на данном этапе моего понимания сессий только для формирования ДВУХ наборов.
А если человеку нужно сделать 5 заявок? Понятно, что после отправки двух заявок я дестрою сессию, он зашел еще раз на страницу выбора параметров, забил еще две - отправил. Потом еще одну.
А как реализовать механизм, чтобы человек мог создавать столько наборов параметров, сколько ему нужно, а потом все разом отправлять в заявке? То есть, по сути, как хранить в "корзине" неограниченное количество наборов?
Ch_chov
Отправлено: 24 Марта, 2015 - 12:52:55
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
AlexNewaro пишет:
Понятно, что после отправки двух заявок я дестрою сессию
Зачем? В сессии могут быть другие полезные даныне. Например авторизация пользователя на сайте. Удаляйте из сессии конкретный набор данных.
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
я так и не понял почему в сессии нельзя это все хранить??
ну и как вариант сделать свои сессии.. писать информацию в файл(ы) или базу, давать юзеру через куки какой то сгенерированный id, и по нему потом дергать инфу из файла(ов) или из базы, хотя по сути сессии так и реализованы, зачем тогда изобретать велосипед?
AlexNewaro
Отправлено: 24 Марта, 2015 - 14:10:10
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
дык я не против, просто квалификации не хватает сессии в базу писать ))
я понимаю так, что сессии нужно присвоить идентификатор типа случайного хэша.
записать в базу все данные, отобранные юзеров, за своим id и в качестве выборного параметра - хэшем.
а при открытии сводной страницы (корзины) - делать запрос по хэшу и выводить все данные к нему привязанные. так?
exlant пишет:
я так и не понял почему в сессии нельзя это все хранить??
ну и как вариант сделать свои сессии.. писать информацию в файл(ы) или базу, давать юзеру через куки какой то сгенерированный id, и по нему потом дергать инфу из файла(ов) или из базы, хотя по сути сессии так и реализованы, зачем тогда изобретать велосипед?
(Добавление)
Проверьте меня...
Я же могу сделать так?
В сессии у меня будет крутиться случайное число ['sid'].
Юзер выбрал набор параметров. Нажал что-то типа "сформировать еще одну заявку".
По клику все выбранные данные записались в базу под уникальным ID, одно из полей - `sid`. Ансет всех переменных, кроме ['sid'].
Юзер снова подбирает набор параметров. Снова нажимает "сформировать еще одну заявку".
По клику - еще одна запись в базу под уникальным ID и тем же `sid`. Ансет всех переменных, кроме ['sid'].
по всему остальному! можно так сделать, но зачем? чем сессии не подходят?
а по записи сессии в бд или в файл, куча инфы в гугле!
там все можно сделать через session_set_save_handler()
AlexNewaro
Отправлено: 24 Марта, 2015 - 15:10:13
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Да я бы рад, но как я буду хранить в сессиях одни и те же переменные, но с разными параметрами?
exlant пишет:
вы так и не ответили почему не можете все эти параметры хранить непосредственно в сессиях??? зачем изобретать велосипед???
Цитата:
Проверьте меня...
Я же могу сделать так?
можете..
генерацию идентификатора, я бы сделал как то так
по всему остальному! можно так сделать, но зачем? чем сессии не подходят?
а по записи сессии в бд или в файл, куча инфы в гугле!
там все можно сделать через session_set_save_handler()
exlant
Отправлено: 24 Марта, 2015 - 15:12:45
Посетитель
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
запихнуть параметры в массив! вы же из бд тоже массив будете получать! (Добавление) Ch_chov в самом начале привел же пример...
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
тогда с начало разбирайтесь с массивами, а то без них никуда!
и еще раз вы из базы получите массив! Точно такой же массив вы можете хранить в сессиях! Зачем дергать БД, и писать лишний код? Разве что для тренировки и самообучения!
AlexNewaro
Отправлено: 24 Марта, 2015 - 15:25:39
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
Ну процесс работы с базой мне знаком, поэтому и кажется проще.
Запишу в базу по клику, при открытии сводной страницы сделаю запрос из базы...
Баран ведь идет туда, куда знает
exlant пишет:
тогда с начало разбирайтесь с массивами, а то без них никуда!
и еще раз вы из базы получите массив! Точно такой же массив вы можете хранить в сессиях! Зачем дергать БД, и писать лишний код? Разве что для тренировки и самообучения!
exlant
Отправлено: 24 Марта, 2015 - 15:30:48
Посетитель
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
ну как знаете
AlexNewaro
Отправлено: 24 Марта, 2015 - 15:34:54
Новичок
Покинул форум
Сообщений всего: 29
Дата рег-ции: Янв. 2015
Помог: 0 раз(а)
А вы, если несложно, мне любой отвлеченный пример с сессиями и массивами приведите, а то гугл меня сегодня не любит.
exlant пишет:
ну как знаете
exlant
Отправлено: 24 Марта, 2015 - 15:53:12
Посетитель
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.