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.SU

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


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

> Без описания
Perun
Отправлено: 06 Марта, 2017 - 15:32:01
Post Id


Гость


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


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




Есть блок вывода новостей. Для каждой новости есть кнопочка для перехода к полной новости. У меня дилемма, откуда правильно,лучше получать эту самую полную новость.
У меня навскидку варианты:

1. Передавать по клику кнопки через GET 'id' конкретной новости. делать запрос в БД по id, затем выводить полученную из БД новость на отдельной страничке, куда передавали id.

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

3. Вариация второго варианта - только передавать полную новость не через сессионную переменную, а через POST форму в скрытом поле передавать полную новость из изначального запроса, который был выполнен для вывода списка всех новостей на страничку конкретной новости.
 
 Top
valentinnew
Отправлено: 06 Марта, 2017 - 15:42:47
Post Id


Новичок


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


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




первый вариант.
Он хорош тем, что по данному урлу будет доступна только одна новость.
В сессии эти данные нельзя хранить. Если ты откроешь в одной вкладке одну новость, потом в другой - другую, потом обновишь первую, то там будет отображаться вторая новость => Нелогичное поведение.
 
 Top
Perun
Отправлено: 06 Марта, 2017 - 15:53:06
Post Id


Гость


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


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




valentinnew пишет:
Если ты откроешь в одной вкладке одну новость, потом в другой - другую, потом обновишь первую, то там будет отображаться вторая новость => Нелогичное поведение.

Сколько новостей, столько и переменных можно установить
(Добавление)
Первый вариант я и поставил первым, т.к. мне больше нравится.
 
 Top
Мелкий Супермодератор
Отправлено: 06 Марта, 2017 - 16:12:26
Post Id



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


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


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




Только первый вариант.
Если поток запросов к новости становится существенным... Да просто поставить nginx+memcache (или с редисом) с полностраничным кэшированием для неавторизованных пользователей и всё. Надо быть очень известным сми, чтобы этой связки не хватило. А когда не хватает - они и масштабируются легко.
Ладно, если у вас проблема именно с чтением БД - ставится redis или мемкеш, и часто запрашиваемые данные сперва ищутся там.

Хранить в сессии - только раздувать объём сессии. Больше никакого профита нет.
Передавать постом - бедные пользователи, получить на странице вместо пары десятков аннотаций все полные тексты этих двух десятков новостей. Плюс XSS.
Оба этих способа ладно если бы просто нелогичны - на них нельзя дать ссылку.


-----
PostgreSQL DBA
 
 Top
Perun
Отправлено: 06 Марта, 2017 - 16:30:21
Post Id


Гость


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


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




ОК. Спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB