Не выводить ранее выведенный материал.

Тема в разделе "PHP", создана пользователем Sankaboy, 14 май 2012.

Модераторы: latteo
  1. Sankaboy

    Sankaboy Постоялец

    Регистр.:
    1 фев 2012
    Сообщения:
    112
    Симпатии:
    3
    Привет! Посоветуйте как разумно, правильно сделать такую вещь:
    - Есть кучка пользователей.
    - Есть кучка картинок.
    - У каждой картинки конечно же свой уникальный ид.

    К примеру я зашел под логином: Ваниль.
    Мне вывелись 10 картинок. Нужно сделать так чтобы при обновлении страницы да и вообще уже не выводились мне именно эти 10 картинок. Те которые я не видел выводятся, те которые вывелись уже не выводятся.

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

    Организовать это не пробовал еще к тому же у меня запрос при выводе с БД уже нагружен.

    Мне только правильную подсказку, а пхп разберусь. Или если не сложно и если есть примеры, приведите их, пожалуйста.
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    а если пользователю забить куку и в нее записывать имена(ну или id) просмотренных картинок?
     
  3. krdma

    krdma Постоялец

    Регистр.:
    1 июн 2009
    Сообщения:
    89
    Симпатии:
    15
    попробуй может отдельную табличку user_id - img_id, делаешь запрос, который вернет все картинки просмотренные пользователем и выводишь те которые не встречаются в массиве, по просмотру загоняешь уже просмотренные в базу.
     
  4. Sankaboy

    Sankaboy Постоялец

    Регистр.:
    1 фев 2012
    Сообщения:
    112
    Симпатии:
    3
    Что потом дальше делать с куки?
     
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.404
    Симпатии:
    1.185
     
  6. Sankaboy

    Sankaboy Постоялец

    Регистр.:
    1 фев 2012
    Сообщения:
    112
    Симпатии:
    3
    Что такое куки и как ими рулить в принципе знаю. Просто спрашивал куда их дальше бросать.
    Попробую так сделать. Спасибо.
     
  7. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    Только через базу данных... Сам подумай, раз скрипт уже отработал, а пользователь через некоторое время снова зашел на сайт, значит нужно где-то сохранять эти "промежуточные данные". Cookie и сессии не подойдут, потому что это сохранение на стороне клиента... Пользователи твои хранятся в БД, значит самый оптимальный вариант туда.
     
  8. bondaf

    bondaf Постоялец

    Регистр.:
    16 мар 2010
    Сообщения:
    85
    Симпатии:
    20
    А что будет, когда картинки закончатся? Надо добавлять еще очистку всех записей таблицы для пользователя. То есть если все картинки просмотрены (или не просмотренных осталось меньше 10) выводить не просмотренные, удалять из новой таблице все записи с этим юзером и заполнять ее заново.
     
  9. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Думаю, неплохо было бы уважаемому ТС уточнить один момент: фича с картинками нужна только единоразово (зашел на сайт, поковырялся, в процессе ковыряния картинки меняются и не повторяются, браузер закрыл и при следующем открытии браузера картинки показанные в предыдущем сеансе могут повториться), другими словами картинки не повторяются только в течении текущей сессии, или на постоянной основе (сколько бы раз ни закрывал/открывал браузер, картинки ни разу не повторятся)?