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 :: cоздать массив и поместить его в сессию, пoдскажите

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: как
sc2r2bey
Отправлено: 26 Августа, 2009 - 13:59:50
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




через форму с помощью checkbox передается неопределенное значение параметров, как выбрать из БД нужные столбцы по количеству переданных значений checkbox и id разным значениям checkbox и выбранные значения массивом поместить в сессию?

данные выбираются

CODE (text):
скопировать код в буфер обмена
  1. $_SESSION['id_service'] = $_POST['service'];
  2. for ($i=0; $i<count($_SESSION['id_service']); $i++)
  3. {
  4. $service = "SELECT * FROM service WHERE id=".$_SESSION['id_service'][$i];
  5. $service_query = mysql_query("$service");
  6. while ($service_select = mysql_fetch_assoc($service_query))
  7. {
  8. echo $service_select['service'];
  9. echo  $service_select['price'];
  10. }
  11. }


а вот как $service_select['service'] и $service_select['price'];
поместить в соответствующие массивы $_SESSION['service'] и $_SESSION['price'], чтоб их потом можно было разобрать по элементам, не получается
помещает только последнюю выбранную запись и все Недовольство, огорчение
 
 Top
Viper
Отправлено: 26 Августа, 2009 - 15:30:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




у вас mysql не загнется от такого? представьте в $_SESSION приедет 1000 id и в этот момент страницу обновят 10 юзверей. 10*1000=10000 запросов.

получите все id из переменной сессии. затем составьте строку вида id1,id2,id3,id4,id5

и затем уже сделайте запрос:
CODE (text):
скопировать код в буфер обмена
  1. SELECT * FROM `db_name` WHERE `id` IN (id1,id2,id3,id4,id5) ORDER BY `id` ASC


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


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
sc2r2bey
Отправлено: 26 Августа, 2009 - 15:48:01
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Viper пишет:
получите все id из переменной сессии. затем составьте строку вида id1,id2,id3,id4,id5
как?
вот так заработало
Цитата:
$_SESSION['id_service'] = $_POST['service'];

for ($i=0; $i<count($_SESSION['id_service']); $i++)
{
$services = "SELECT * FROM service WHERE id=".$_SESSION['id_service'][$i];
$service_query = mysql_query("$services");
$service_select = mysql_fetch_assoc($service_query);
$service[] = $service_select['service'];
$sprice[] = $service_select['price'];
}

(Отредактировано автором: 26 Августа, 2009 - 15:57:38)

 
 Top
RomAndry Администратор
Отправлено: 26 Августа, 2009 - 19:18:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




Вообще грамотно, когда в проектировании проекта, сессия используется как сессия, т.е. хранение авторизации
 
My status
 Top
sc2r2bey
Отправлено: 26 Августа, 2009 - 21:15:36
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




RomAndry пишет:
Вообще грамотно, когда в проектировании проекта, сессия используется как сессия, т.е. хранение авторизации

а как же тогда многостраничные формы заполнять и переносить данные?
 
 Top
Nestor
Отправлено: 27 Августа, 2009 - 02:25:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Первая страница - создали запись в бд, все последующие страници - дополнение этой записи.


-----
Aurus CMS
 
 Top
sc2r2bey
Отправлено: 27 Августа, 2009 - 17:56:53
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Nestor пишет:
Первая страница - создали запись в бд, все последующие страници - дополнение этой записи.
и насколько это оптимальнее, а если вернуться на шаг назад, чтоб подправить данные?
 
 Top
Viper
Отправлено: 28 Августа, 2009 - 08:11:19
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




sc2r2bey пишет:
и насколько это оптимальнее, а если вернуться на шаг назад, чтоб подправить данные?


это не оптимально, это правильно.
если юзверь на странице 2 никаких данных не изменял то просто возвращаем его на первую страницу. а если изменял, делаем UPDATE и возвращаем.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
sc2r2bey
Отправлено: 28 Августа, 2009 - 10:10:55
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




а как поймем, что он менял или не менял данные?
 
 Top
Viper
Отправлено: 28 Августа, 2009 - 13:54:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




sc2r2bey пишет:
а как поймем, что он менял или не менял данные?


ну смотрите. на второй странице делаете button. если юзер что-то поменял то в $_POST приедут уже другие данные чем были при первой загрузке страницы. к тому же если юзер нажмет в браузере кнопку Назад или Backspace на клаве, то браузер все равно спросит переотправить ли данные.

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


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB