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]   

> Без описания
leshiy
Отправлено: 25 Сентября, 2018 - 11:42:00
Post Id


Частый гость


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


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




Попробовал вывести последние просмотренные записи посетителями сайта с помощью COOKIE и набросал вот такой вот код:
Добавление COOKIE.
PHP:
скопировать код в буфер обмена
  1. $ar='/'.$vid["id"].'/';
  2. if(!isset($_COOKIE["__rol"])){setcookie('__rol', $ar);}elseif(isset($_COOKIE["__rol"])){
  3. $findme='/'.$vid["id"].'/';
  4. $pos=strpos($_COOKIE["__rol"],$findme);
  5. if($pos===false){$dob_cok=$ar.$_COOKIE["__rol"];
  6. setcookie('__rol', $dob_cok);}}
  7.  

Вывод данных из COOKIE
PHP:
скопировать код в буфер обмена
  1. if(preg_match_all('~/(.*?)/~', $_COOKIE["__rol"], $matches)){
  2. $vv_r='';
  3.     foreach ($matches[1] as $i => $post){
  4. $vv_r.=$post.',';
  5. }}
  6. if ($vv_r{strlen($vv_r)-1} == ',') {
  7.    $v_rr = substr($vv_r,0,-1);
  8. }
  9. $sql="SELECT * FROM date WHERE id in (".$v_rr.")";
  10.  

Но вот как их отсортировать не пойму (т.е. в куки помимо id записи нужно добавлять и дату, но вот как наиболее правильно это сделать и как их сортировать в SQL)?
 
 Top
miketomlin
Отправлено: 25 Сентября, 2018 - 11:54:25
Post Id


Частый гость


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


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




Просто используйте значение куки, как очередь.
(Добавление)
Т.е. добавляйте последнюю просмотренную запись в начало или в конец списка, при необходимости урезая его размер, чтобы не было «неограниченного» роста.

(Отредактировано автором: 25 Сентября, 2018 - 12:01:17)

 
 Top
leshiy
Отправлено: 25 Сентября, 2018 - 12:19:26
Post Id


Частый гость


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


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




miketomlin пишет:
Просто используйте значение куки, как очередь.
(Добавление)
Т.е. добавляйте последнюю просмотренную запись в начало или в конец списка, при необходимости урезая его размер, чтобы не было «неограниченного» роста.


Я пробовал добавлять последнюю просмотренную запись в начало куки но дело в том что
PHP:
скопировать код в буфер обмена
  1. $sql="SELECT * FROM date WHERE id in (".$v_rr.")";
  2.  

сортирует их по id из бд.
 
 Top
miketomlin
Отправлено: 25 Сентября, 2018 - 19:58:27
Post Id


Частый гость


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


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




Используйте эту выборку только для вывода, а список id в куке меняйте так, как я сказал. И не забудьте убирать дубликаты из этого списка (или по крайней мере не «пихайте» дубликаты в запрос).
 
 Top
broshurkaplus
Отправлено: 01 Октября, 2018 - 19:52:16
Post Id



Посетитель


Покинул форум
Сообщений всего: 354
Дата рег-ции: Янв. 2011  
Откуда: Пружаны Бресткая обл. Беларусь


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




не понял про
Цитата:
сортирует их по id из бд


вижу так:
храним в куки массив как строку
при новом просмотре проверяем есть ли в массиве
- если есть ничего - не делаем
- если нет - удаляем последний элемент, новый в начало массива
для выбора из бд берем ключи и подставляем в in (в зависимости от порядка следования ид в бд можно сортирнуть ключи), получив данные присваиваем их по ключам начального массива -> получаем циклом вывод в порядке просмотра
 
 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