![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
shurup_312 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 27.3.2007 Репутация: нет Всего: нет |
И все таки ворачиваемся и ворачиваемся к теме как же все таки реализовать на форуме "новые" и "прочитанные сообщения"? Ну народ, высказывайтесь, может кто-то такое делал, может кто-то готовый движок ковырл и видел как там это сделано? Просто очень нужно многим, а решения пока так я и не нашел и думаю многие так и не нашли.
|
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
А что тут трудного? У каждого сообщения есть своя дата публикации. Ты знаешь, когда пользователь зашел последний раз? - Да? - Вот и выбери из базы сообщения, с датой, большей, чем время последнего визита пользователя.
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
shurup_312 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 27.3.2007 Репутация: нет Всего: нет |
не, не годится... пользователь вошел и вышел... и все сообщения которые до этого были непрочитанными потому как у них время было позже теперь будут прочитанными потому как он зашел и вышел а время последнего захода стало больше тех постов.
|
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
Тогда сделай, чтобы обновление даты последнего захода было не сразу, а через небольшую паузу. Во всяком случае именно это и есть ключевым моментом к решению проблемы.
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
shurup_312, Очевидно, у юзера хранить даты последнего посещения тем форума. Тем у форума, как правило, не очень много, можно просто сериализованным массивом хранить. Если массив стал большим - обнуляем его и выставляем прочитанными ВСЕ сообщения с даты последнего посещения. Можно сложную базу организовать, но это, imho, геморой
![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Diabolus |
|
|||
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 12.6.2007 Репутация: нет Всего: нет |
Если сообщения - это топики, то новые - сверять ненешнее время (минус, скажем, сутки) со временем добавления сообщения.
Прочитано или нет - куки обычно. Это сообщение отредактировал(а) Diabolus - 27.9.2008, 02:09 |
|||
|
||||
shurup_312 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 27.3.2007 Репутация: нет Всего: нет |
вот это был бы хороший вариант если бы не одно но. У меня просто сайт с базой около 3000 пользователей. Вот я и думаю, если даже 1000 пользователей будет и 200 тем то это 200 тысяч записей. Это же ой как много... Хотя вариант допустимый в принципе. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
shurup_312, У каждого юзера есть таблица со статистикой - время последнего посещения, ets... Вот туда добавить поле - "прочитанные темы" типа Text. Добавится 1 запись для каждого юзера.
В это поле ложить массив вида array('ТЕМА_ID'=>%LAST_TIME%, ...) записывать его с помошью serialize, unserialize. В принципе, такой массив можно хранить и в куках. Если юзер скачет с компа на комп - это может быть не очень удобно, но в принципе - нормльное решение, я -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
Создай для сообщений отдельную базу. И в ней для каждого сообщения сделай поле допустим read. Пользователь прочел, поставь 1. Не прочел оставь 0
Добавлено через 2 минуты и 9 секунд Определять сообщения по дате? А если пользователь их не прочитает? А просто зайдет? Лучше для каждого сообщения указывать переменную типа true и false |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
SneG0K, и у каждого сообщения будет 3000 записей про 3000 пользователей?
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Валерия |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
А как это делаеться на форумах типа этого или phpbb или vbulitein?
|
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 7 Всего: 54 |
ksnk, зачем? Создать отдельную таблицу, с идентификатором пользователя и туда писать сообщения.
|
|||
|
||||
shurup_312 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 27.3.2007 Репутация: нет Всего: нет |
а хороший вариант тоже, спасибо большое. Даже наверное пока лучший...
не пойдет, так как пользователь то не один, а из 3000 у емня допустим. поэтому для каждого сообщения надо делать количество полей по количеству юзеров при таком подходе... |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |