Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
63 / 34 / 8
Регистрация: 07.02.2015
Сообщений: 125

PHP и БД-Сессии - как реализовать конкретную задачу?

24.03.2015, 15:33. Показов 726. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такое понятие как корзина.
Я под этим понимаю складирование информации о конкретном товаре, к которой потом можно вернуться и пакетно обработать.

А вот если единица "товара" - это набор выбранных пользователем параметров?

То есть человек навыбирал из формы те параметры, которые ему нужны. Оформил заявку, содержащую эти параметры.

Если хочется дать ему возможность сформировать несколько наборов параметров, а потом единой заявкой все отправить - я так понимаю помогут сессии.
Так и реализовал - в сессию записывается первый набор параметров. После повторного выбора параметров, на сводной странице выводятся сразу два набора параметров. Сводная заявка, занавес. Все работает.

НО! Это справедливо на данном этапе моего понимания сессий только для формирования ДВУХ наборов.
А если человеку нужно сделать 5 заявок? Понятно, что после отправки двух заявок я дестрою сессию, он зашел еще раз на страницу выбора параметров, забил еще две - отправил. Потом еще одну.
А как реализовать механизм, чтобы человек мог создавать столько наборов параметров, сколько ему нужно, а потом все разом отправлять в заявке? То есть, по сути, как хранить в "корзине" неограниченное количество наборов?

Добавлено через 2 часа 34 минуты
Проверьте меня...
Я же могу сделать так?

Code
1
2
$sid = mt_rand();
$_session['sid'] = $sid;
В сессии у меня будет крутиться случайное число ['sid'].

Юзер выбрал набор параметров. Нажал что-то типа "сформировать еще одну заявку".
По клику все выбранные данные записались в базу под уникальным ID, одно из полей - `sid`. Ансет всех переменных, кроме ['sid'].

Юзер снова подбирает набор параметров. Снова нажимает "сформировать еще одну заявку".
По клику - еще одна запись в базу под уникальным ID и тем же `sid`. Ансет всех переменных, кроме ['sid'].

Открытие "корзины" - выборка из базы
Code
1
WHERE `sid` = $sid
и обработка полученных данных через foreach.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2015, 15:33
Ответы с готовыми решениями:

Нужно реализовать задачу на PHP
изображение удалено Саму суть понял, а как реализовать не знаю.

Можно ли найти микроконтроллер под конкретную задачу?
Мне нужен микроконтроллер способный работать с базами данных, точнее не именно с конкретной базой данных, а настроить механизм транзакций,...

Помогите решить конкретную задачу связанную с шаблонами
Такая задача: есть три класса, один простой, другой шаблонный, а третий - интерфейсный. Простой класс и шаблонный - наследуются от...

3
Заблокирован
24.03.2015, 16:07
Цитата Сообщение от AlexNewaro Посмотреть сообщение
НО! Это справедливо на данном этапе моего понимания сессий только для формирования ДВУХ наборов.
Почему двух. Сессия хранит в себе массив. Он может быть многомерным. И сколько ты туда впихнёшь дело твоё. Только надо помнить что оперативка на сервере не резиновая. Я лично для корзины использую БД. Дабы не терять заказы в случае форс мажоров.
1
63 / 34 / 8
Регистрация: 07.02.2015
Сообщений: 125
24.03.2015, 16:12  [ТС]
Ну вот я в редакции своего сообщения додумал такое вот решение с SID. Оно имеет право на существование?
0
Заблокирован
24.03.2015, 16:44
Я честно говоря не понял для чего нужно случайное число. И соответственно всю цепочку действий после.
Я не понимаю, почему то что выбрал пользователь должно хранится в сессии.
Ведь надёжнее хранить в БД. Просто отделять заказ от корзины. Но если уж так приспичило делать через сессию.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
unset($_SESSION['korzina']);//это тут только для примера
$arr = array('товар'=>'nokia 3310','дата_производства'=>'2001','цена'=>'50');
//можеш сформировать так
$_SESSION['korzina']["${arr['товар']}"]['параметры'] = $arr;
$_SESSION['korzina']["${arr['товар']}"]['количество'] = 5;
var_dump($_SESSION);//это тут только для примера
unset($_SESSION['korzina']);//это тут только для примера
//а можеш и так
$_SESSION['korzina']['подзаказ№1']["${arr['товар']}"]['параметры'] = $arr;
$_SESSION['korzina']['подзаказ№1']["${arr['товар']}"]['количество'] = 5;
$_SESSION['korzina']['подзаказ№2']["${arr['товар']}"]['параметры'] = $arr;
$_SESSION['korzina']['подзаказ№2']["${arr['товар']}"]['количество'] = 2;
var_dump($_SESSION);//это тут только для примера
соответственно и работать с этим массивом можно как угодно если есть знания. Но я бы всё таки рекомендовал складывать в БД. Сессия может прирватся в любой момент.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2015, 16:44
Помогаю со студенческими работами здесь

Как реализовать код, который при клике мышкой на объект, телепортировал персонажа в конкретную точку
Помогите пожалуйста. Подскажите как реализовать Скрипт который при клике мышкой на объект, телепортировал персонажа в конкретную точку. ...

В чем ошибка и как реализовать? Сессии.
Вопрос в следующем: на индексной странице такая конструкция <% If Session('MemberID')='' Then %> Вывод формы для...

PHP сессии, сортировка массива сессии
Доброе время суток, существует такая ситуация, у меня есть корзина, которая основана на сессиях, всё работает хорошо, кроме одного,...

Как реализовать задачу?
:wall: Как мне написать такую программу??? :wall:

подскажите как реализовать задачу
описать функции форматирования элементов одномерного массива с помощью генератора случайных чисел и проверки равенства двух массивов. с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru