refresh cnucok 7bit.forum нacлeдuть
  РегистрацияПользователиАдминистраторы и модераторыПоискЧасто задаваемые вопросы На главную

7bit.forum » Техника » Обмен опытом » Разработка форума: прочитанные и непрочитанные темы » Привет, незнакомец [войти|регистрация]
Распечатать страницу
Понравилась тема? Поделитесь с друзьями!
Автор
Сообщение « Предыдущая тема | Следующая тема »
Юрик
Юрик - мужик
Его Величество Администратор




Группа: Администраторы

Дата регистрации: 21.06.2004
Сообщения: 3340
Кто?: Выпускник

Репутация пользователя :
+3212 -428 = 2784
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!


Разработка форума: прочитанные и непрочитанные темы На верх страницы

(тема отвлечённая, хоть и актуальна для многих проектов)

Предлагаю для обсуждения такой вопрос:
предположим, пишется форум или система, где есть ветки с дискуссиями.
В системе есть пользователи, которые эти ветки читают и оставляют в них сообщения

Представим себе ситуацию, что пользователь зашёл в систему.
Задача: организовать поиск новых тем, то есть тем, в которых есть сообщения, которые данный пользователь ещё не читал. (тема считается непрочитанной, если дата посещения этой темы пользователем младше даты создания какого-либо сообщения в теме)

Решение задачи "в лоб":
делаем таблицу:
table visited_threads
столбцы:
id
thread_id
user_id
date_of_visit


результат: формально всё как надо, всегда можем узнать, когда данный пользователь был в данной теме.
Проблемы такого "лобового" решения:
если число пользователей N велико, а число тем тем M ещё больше (можно брать в пример даже наш форум), то число строк такой таблице стремится (в идеале) к N*M.
И проблема тут не в экономии дискового пространства, а, прежде всего, в быстродействии.
Можно, конечно, создавать индекс на thread_id и user_id, но это не спасет от удара по производительности: связка двух таблиц (таблица visited_threads, и таблица со списком тем) будет немного проблематична. Ведь нужно будет выбрать все темы из таблицы тем, для которых нет соответствия в visited_threads.

Существуют другие решения, например, с использованием cookies.
Но они имеют свои недостатки.
Да и всё-таки очень хочется хранить такую информацию в БД.

чуть позже скину своё решение (тоже не идеальное)

Пишется всё это дело на Web с применением некоторой БД
Для определённости будем считать, что это РНР и MySQL

У кого какие мнения?

__________________
Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.

25.10.2005 16:38 Юрик оффлайн Искать сообщения : Юрик Добавить Юрик в адресную книгу
Юрик
Юрик - мужик
Его Величество Администратор




Группа: Администраторы

Дата регистрации: 21.06.2004
Сообщения: 3340
Кто?: Выпускник

Репутация пользователя :
+3212 -428 = 2784
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!

Автор темы Автор темы Юрик


добавка На верх страницы

иногда вводят понятие последнего визита на форум, тогда все темы до времени последнего визита автоматически считаются прочитанными (так сделано в нашем форуме).

__________________
Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.

25.10.2005 16:59 Юрик оффлайн Искать сообщения : Юрик Добавить Юрик в адресную книгу
Imm
Imm - мужик
Легендарный студент ИТМО




Группа: VIP-Пользователи

Дата регистрации: 22.12.2003
Сообщения: 2030
Кто?: Студент СПбГУ (физфак)

Репутация пользователя :
+877 -379 = 498
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

А разве на быстродействие не повлияет вариант создания отдельной таблицы, для каждого юзера, с айдишниками тем и датами их посещения?

__________________
Серьёзное лицо это ещё не признак ума, все глупости на Земле совершаются именно с этим выражением лица... Улыбайтесь, господа, улыбайтесь! ...
(из к/ф "Тот самый Мюнхгаузен". сценарий Г. Горина)

25.10.2005 19:58 Imm оффлайн Послать письмо Imm Искать сообщения : Imm Добавить Imm в адресную книгу
Юрик
Юрик - мужик
Его Величество Администратор




Группа: Администраторы

Дата регистрации: 21.06.2004
Сообщения: 3340
Кто?: Выпускник

Репутация пользователя :
+3212 -428 = 2784
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!

Автор темы Автор темы Юрик


На верх страницы

цитата:
Белослав пишет
А разве на быстродействие не повлияет вариант создания отдельной таблицы, для каждого юзера, с айдишниками тем и датами их посещения?


проблема в том, что при связывании таблицы тем с таблицей логов посещений необходимо выводить не данные, которые есть и в той, и в той таблице,
а такие строки таблицы тем, которые не имеют аналогов в таблице логов посещений.
В результате имеем сложный запрос, который будет выполняться неизвестно сколько времени

__________________
Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.

25.10.2005 20:35 Юрик оффлайн Искать сообщения : Юрик Добавить Юрик в адресную книгу
Stan F
Stan F - мужик
Его Величество Администратор


Группа: Администраторы

Дата регистрации: 14.11.2003
Сообщения: 5148
Кто?: ФЮРЕР

Репутация пользователя :
+1897 -840 = 1057
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

ну.. быстродействие..

MySQL - при надлежащих условиях очень шустрая штука. По тестам выборки из гигабайтовых таблиц, даже не самые простые, не критичны.

Давай обсудим твое конкретное решение.

__________________

Последний рассвет
Тонкая нить и
Холодная сталь
Поможет забыть мне
Сотрёт глубину
Исчезнет печаль
Прольётся внутри
Моя мёртвая кровь
Развеет твой крик

26.10.2005 00:07 Stan F оффлайн Сайт Stan F Искать сообщения : Stan F Добавить Stan F в адресную книгу
AssaultRifle
AssaultRifle - мужик
Лорд Гигабайт I-степени




Группа: VIP-Пользователи

Дата регистрации: 07.06.2005
Сообщения: 1671
Кто?: 7bit.штурмоствол

Репутация пользователя :
+1039 -687 = 352
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!


На верх страницы

Не знаю, понравится ли вам моё предложение, но думаю, что стоит подойти с другого конца: просто сделать фишку наподобие "Активные темы за последний день", но чтобы пользователь мого выбрать темы к-рые изменялись за последние 5 мин...месяц - каждый помнит, когда примерно последний раз заходил, реализация - крайне простая, крме того это позволит "вылавливать" темы, которые изменялись в то время, пока я сижу на форуме

__________________
Si vis pacem, para bellum!

08.11.2005 01:40 AssaultRifle оффлайн Послать письмо AssaultRifle Сайт AssaultRifle Искать сообщения : AssaultRifle Добавить AssaultRifle в адресную книгу
McLay
McLay - мужик
Барон Килобайт I-степени




Группа: Пользователи

Дата регистрации: 18.11.2004
Сообщения: 189
Кто?: Студент, группа 2221

Репутация пользователя :
+36 -11 = 25
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

Во-первых, я бы не преувеличивал насчет размеров таблицы visited_threads.
1. Активных пользователей, которые ходят в каждый топик - меньшенство.
2. Если форум реально большой, то даже активные не смогу посетить все топики.


Во-вторых, если делать кнопку "отметить все как прочитанные" - можно просто ставить метку этой даты в отдельную таблицу, а все темы для этого юзера из visited_threads поудалять. Думаю, всё те же активные юзери будут переодичиески ей пользоваться.

В-третьих, как сделать выборку быстро, я еще не придумал )

И еще:
Если форум большой, с тематическими разделами, то можно делать таблицы отдельно для раздела, и соответвенно поиски новых будут возможны только по ним. Но для форумов типа 7bit, где желательно делать выборку из обновившехся тем со всего форума - это не выход. А вот на forums.ag.ru по-моему так и сделанно.


~добавил
Насчет быстродействия, думаю при запросе на выборку обновленных топиков, можно создавать временную таблицу для юзера со строками из visited_threads. Либо вообще, изначально создавать отдельные таблицы. Уж не знаю как второе повлияет на быстродейтвие. Нужно тестить.

а-а, на forums.ag.ru вообще как таковых выборок не делается. Просто в общем списке дается инфа по тому сколько новых сообщение в теме если они есть.

Так что я даже наверно и не видел форумов с запрошенной функциональностью )

__________________
jazzy life

Сообщение отредактировано 2 раз(а), редактировал McLay , 08.11.2005 в 03:32.

08.11.2005 02:59 McLay оффлайн Искать сообщения : McLay Добавить McLay в адресную книгу
Stan F
Stan F - мужик
Его Величество Администратор


Группа: Администраторы

Дата регистрации: 14.11.2003
Сообщения: 5148
Кто?: ФЮРЕР

Репутация пользователя :
+1897 -840 = 1057
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

если чего-то очень хочется и его не бывает, нужно сделать Wink

а что, если назначить некоторый промежуток времени, скажем месяц (dT). все сообщения старше NOW() - dT считать прочитанными, также очищать таблицу от всех старых тем при ее обновлении. а вот сбрасывать темы из списка новых - только при открытии соответствующих страниц либо при нажатии ссылки "пометить...".
Резонно вроде.

__________________

Последний рассвет
Тонкая нить и
Холодная сталь
Поможет забыть мне
Сотрёт глубину
Исчезнет печаль
Прольётся внутри
Моя мёртвая кровь
Развеет твой крик

08.11.2005 05:47 Stan F оффлайн Сайт Stan F Искать сообщения : Stan F Добавить Stan F в адресную книгу
AssaultRifle
AssaultRifle - мужик
Лорд Гигабайт I-степени




Группа: VIP-Пользователи

Дата регистрации: 07.06.2005
Сообщения: 1671
Кто?: 7bit.штурмоствол

Репутация пользователя :
+1039 -687 = 352
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!


На верх страницы

цитата:
Stan F пишет
если чего-то очень хочется и его не бывает, нужно сделать Wink

а что, если назначить некоторый промежуток времени, скажем месяц (dT). все сообщения старше NOW() - dT считать прочитанными, также очищать таблицу от всех старых тем при ее обновлении. а вот сбрасывать темы из списка новых - только при открытии соответствующих страниц либо при нажатии ссылки "пометить...".
Резонно вроде.

я примерно о том же говорил

__________________
Si vis pacem, para bellum!

09.11.2005 01:56 AssaultRifle оффлайн Послать письмо AssaultRifle Сайт AssaultRifle Искать сообщения : AssaultRifle Добавить AssaultRifle в адресную книгу
McLay
McLay - мужик
Барон Килобайт I-степени




Группа: Пользователи

Дата регистрации: 18.11.2004
Сообщения: 189
Кто?: Студент, группа 2221

Репутация пользователя :
+36 -11 = 25
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

ну да в любом случае, наверное придется ставить какое-то ограничение по времени. Может не месяц, но год. ХЗ. Хотя на том же аг я уже зареген несколько лет, и удобно, что можно смотреть архивные ветки с полной инфой о том был я тут уже или нет.

Интересно было бы собрать статистку по кол-ву посещений юзером топиков...т.е. спрогнозировать размер таблицы visited_threads. и потестить все это.

__________________
jazzy life

09.11.2005 09:46 McLay оффлайн Искать сообщения : McLay Добавить McLay в адресную книгу
Stan F
Stan F - мужик
Его Величество Администратор


Группа: Администраторы

Дата регистрации: 14.11.2003
Сообщения: 5148
Кто?: ФЮРЕР

Репутация пользователя :
+1897 -840 = 1057
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

надо для начала решЫть, нужно ли это на самом деле - раз. если нужно - сделать и потестировать - два. если не покатит - всегда возможно отказаться от этой идеи.

__________________

Последний рассвет
Тонкая нить и
Холодная сталь
Поможет забыть мне
Сотрёт глубину
Исчезнет печаль
Прольётся внутри
Моя мёртвая кровь
Развеет твой крик

09.11.2005 10:53 Stan F оффлайн Сайт Stan F Искать сообщения : Stan F Добавить Stan F в адресную книгу
McLay
McLay - мужик
Барон Килобайт I-степени




Группа: Пользователи

Дата регистрации: 18.11.2004
Сообщения: 189
Кто?: Студент, группа 2221

Репутация пользователя :
+36 -11 = 25
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

Stan F, бесспорно )

Юpик, а что там у тебя за решение было? Или это про "время последнего визита на форум"?

__________________
jazzy life

14.11.2005 17:28 McLay оффлайн Искать сообщения : McLay Добавить McLay в адресную книгу
Юрик
Юрик - мужик
Его Величество Администратор




Группа: Администраторы

Дата регистрации: 21.06.2004
Сообщения: 3340
Кто?: Выпускник

Репутация пользователя :
+3212 -428 = 2784
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!

Автор темы Автор темы Юрик


На верх страницы

чуть позде отпишу.. Почти реализован уже

__________________
Xριστος ανεστη εκ νεκρων
Θανατω θανατον πατησας.
Και τοις εν τοις μνημασι
Ζωην χαρισαμενος.

14.11.2005 17:50 Юрик оффлайн Искать сообщения : Юрик Добавить Юрик в адресную книгу
HiPeR
HiPeR - мужик
Сэр Байт II-степени




Группа: Пользователи

Дата регистрации: 17.11.2005
Сообщения: 60
Кто?: Студент, группа 1514

Репутация пользователя :
+12 -26 = -14
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!


На верх страницы

ну незнаю поседев 3 минуты в голуву пришел такой запрос
[CODE]

// Эта функция производит обновление времени последнего посещения
// пользователя и устанавливает куки для определения является ли
// сообщение новым. При каждом просмотре страницы форума происходит
// обновление времени последнего посещения текущего автора, при этом
// текущее время сравнивается с предыдущим значением - если оно больше
// 30 минут, кукису last_time присваиваем это старое значение, а в базу
// заносим новое время. Это работает.
// $author - имя пользователя
// $enter - если true - принудительное обновление куков
function settime($author,$enter)
{
$ath = mysql_query("SELECT UNIX_TIMESTAMP(time) FROM authors WHERE name='$author'");
if($ath)
{
$authr = mysql_fetch_array($ath);
$temptime = (int)$authr['UNIX_TIMESTAMP(time)'];
if((time() - $temptime)/60>20 || $enter) // Если с момента последнего посещения прошло больше 20 минут
{
// Устанавливаем в кукисах новое время
$query_update = "update authors set last_time='".date("Y-m-d H:i:s",$temptime)."' where name='$author';";
if(!mysql_query($query_update))echo "Ошибка при обновлении времени (lasttime) ...";
}
// И в любом случае обновляем базу данных
$query_update = "update authors set time=NOW() where name='$author';";
if(!mysql_query($query_update)) echo "Ошибка при обновлении времени (time) ...";
}
else echo "Ошибка при обращении к таблице авторов ...";
}
// Выясняем дату последнего вхождения и выводим приветствие
if(!empty($current_author))
{
settime($current_author,false);
$query = "SELECT * FROM authors
WHERE name = '$current_author'";
$ath = mysql_query($query);
if($ath)
{
$auth = mysql_fetch_array($ath);
$lasttime = $auth['last_time'];
} else echo "Ошибка при выборке тем форума...";
} else $current_author = " Посетитель";
// Если время последнего пребывания посетителя неустановлено
// выводим будут отмечены изменения за последние 2 часа
if(empty($lasttime)) $lasttime = date("Y-m-d H:i:s",time()-3600*2);

if (($showforumsline || $readforumline) && $settings['show_forum_switch'] == 'yes') $shownewpost=true;
else $shownewpost=false;

if($showforumsline && $settings['show_forum_switch'] == 'yes') $show_switch_forum=true;
else $show_switch_forum=false;

$query = "SELECT * FROM themes
WHERE id_forum = 1 AND

ORDER BY time DESC
LIMIT 0, 30";
$thm = mysql_query($query);

while($themes = mysql_fetch_array($thm))
{
///////////////////////////////////////////////////////////
// Блок вывода числа сообщений в теме
///////////////////////////////////////////////////////////
// Подсчитываем количество сообщений в текущей теме,
// результат помещаем в переменную $posts_in_topic
$query = "SELECT COUNT(*) FROM posts
WHERE id_theme = ".$themes['id_theme']." AND

$pst = mysql_query($query);
if($pst) $posts_in_topic = mysql_result($pst, 0);
else echo "Ошибка при подсчёте количества сообщений темы...";
// Подсчитываем количество новых сообщений в текущей
// теме, результат помещаем в переменную $new_posts_in_topics
$query = "SELECT COUNT(*) FROM posts
WHERE id_theme='".$themes['id_theme']."' AND
'$lasttime'<time AND
hide != 'hide'";
$tim = mysql_query($query);
if($tim)
{
if(mysql_num_rows($tim) > 0) $new_posts_in_topics = mysql_result($tim, 0);
else $new_posts_in_topics = 0;
} else echo "Ошибка при подсчёте числа новых сообщений";

// Формируем стилевое оформление темы и строку с числом новых и
// общим числом сообщений в теме
if($new_posts_in_topics != 0)
{
// Если в системе имеются новые сообщения приводим их
// в скобках
$theme_count = "$posts_in_topic($new_posts_in_topics) ";
$theme_style = "class=namenewtema";
}
else
{
// Если новых сообщений нет, просто приводим общее число
// сообщений в теме
$theme_count = $posts_in_topic;
$theme_style = "class=nametema";
}
echo "<p $theme_style><nobr>$theme_count</nobr></p></td>";
}

[/CODE]

Если не понятно пиши отвечу что и как... хотя это пример сделан на лету и я не отлаживал и не бейте мну за это не виноват я ...
это всего лишь пример

__________________
Пока еще мы молоды,
пока бушует кровь.
Пошла учеба к черту.
Да Здарствует Любовь
(Романтик)

10.12.2005 05:55 HiPeR оффлайн Искать сообщения : HiPeR Добавить HiPeR в адресную книгу
zblk
zblk - мужик
Кронпринц Модератор




Группа: Модераторы

Дата регистрации: 04.10.2004
Сообщения: 1022
Кто?: ninja, групп 1337

Репутация пользователя :
+844 -228 = 616
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

HiPeR, если уж пишешь конкретный пример, то хотя бы на пальцах объяснил, как база будет выглядеть... хотя, судя из того что написано, ничего координально нового тут нету... две таблицы - авторы и темы, в первой хранится время последнего посещения форума, а из второй выбираются все темы, после этого времени... ну и сразу такой вопрос: да эта тема удобна для того чтобы найти все темы после последнего визита... а если человек, например, сначала прочитал несколько тем, а потом решил посмотреть, что нового с момента его последнего визита?... имхо, строго привязываться ко времени не стОит...

10.12.2005 10:24 zblk оффлайн Искать сообщения : zblk Добавить zblk в адресную книгу
Stan F
Stan F - мужик
Его Величество Администратор


Группа: Администраторы

Дата регистрации: 14.11.2003
Сообщения: 5148
Кто?: ФЮРЕР

Репутация пользователя :
+1897 -840 = 1057
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

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

да, HiPeR, будь добр кратенькую схему данных для примера, спецом для zblk'a Wink

__________________

Последний рассвет
Тонкая нить и
Холодная сталь
Поможет забыть мне
Сотрёт глубину
Исчезнет печаль
Прольётся внутри
Моя мёртвая кровь
Развеет твой крик

10.12.2005 15:54 Stan F оффлайн Сайт Stan F Искать сообщения : Stan F Добавить Stan F в адресную книгу
HiPeR
HiPeR - мужик
Сэр Байт II-степени




Группа: Пользователи

Дата регистрации: 17.11.2005
Сообщения: 60
Кто?: Студент, группа 1514

Репутация пользователя :
+12 -26 = -14
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!


На верх страницы

вылетит? хм .. не знаю... по тестам время регенерации увеличиваеться на 0.0001 секунду... (тест nginx) .

а структуру можно любую

[CODE]
CREATE TABLE authors (
id_author int(6) NOT NULL auto_increment,
name tinytext NOT NULL,
passw tinytext NOT NULL,
email tinytext NOT NULL,
sendmail enum('yes','no') NOT NULL default 'no',
url tinytext NOT NULL,
icq tinytext NOT NULL,
about mediumtext NOT NULL,
photo tinytext NOT NULL,
time datetime NOT NULL default '0000-00-00 00:00:00',
last_time datetime NOT NULL default '0000-00-00 00:00:00',
themes int(10) NOT NULL default '0',
statususer enum('','moderator','admin') NOT NULL default '',
PRIMARY KEY (id_author)
) TYPE=MyISAM;
CREATE TABLE themes (
id_theme int(11) NOT NULL auto_increment,
name tinytext NOT NULL,
author tinytext NOT NULL,
id_author int(6) NOT NULL default '0',
last_author tinytext NOT NULL,
id_last_author int(6) NOT NULL default '0',
hide enum('show','hide','lock') NOT NULL default 'show',
time datetime NOT NULL default '0000-00-00 00:00:00',
id_forum int(2) NOT NULL default '0',
PRIMARY KEY (id_theme),
FULLTEXT KEY search (name,author)
) TYPE=MyISAM;
[/CODE]

__________________
Пока еще мы молоды,
пока бушует кровь.
Пошла учеба к черту.
Да Здарствует Любовь
(Романтик)

11.12.2005 02:16 HiPeR оффлайн Искать сообщения : HiPeR Добавить HiPeR в адресную книгу
Полина
Полина - женщина/девушка
Кронпринц Модератор




Группа: Модераторы

Дата регистрации: 07.11.2003
Сообщения: 341
Кто?: Мисс 7bit.tits

Репутация пользователя :
+296 -143 = 153
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

цитата:
Если не понятно пиши отвечу что и как... хотя это пример сделан на лету и я не отлаживал и не бейте мну за это не виноват я ...
это всего лишь пример

хи-хи-хи :-))
а мне тут мальчик говорит, что это LiteForum от http://www.softtime.ru Big Grin

11.12.2005 03:05 Полина оффлайн Послать письмо Полина Сайт Полина Искать сообщения : Полина Добавить Полина в адресную книгу
HiPeR
HiPeR - мужик
Сэр Байт II-степени




Группа: Пользователи

Дата регистрации: 17.11.2005
Сообщения: 60
Кто?: Студент, группа 1514

Репутация пользователя :
+12 -26 = -14
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!


На верх страницы

не спорю похож ибо комментировать было влом...
Алгоритм тот же...

__________________
Пока еще мы молоды,
пока бушует кровь.
Пошла учеба к черту.
Да Здарствует Любовь
(Романтик)

Сообщение отредактировано 1 раз(а), редактировал HiPeR , 11.12.2005 в 03:31.

11.12.2005 03:23 HiPeR оффлайн Искать сообщения : HiPeR Добавить HiPeR в адресную книгу
HiPeR
HiPeR - мужик
Сэр Байт II-степени




Группа: Пользователи

Дата регистрации: 17.11.2005
Сообщения: 60
Кто?: Студент, группа 1514

Репутация пользователя :
+12 -26 = -14
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!


На верх страницы

ну вот еще вариант

<?
function last($id,$topic_id)
{
$res=false;
for($i=0;$i<count($topic_id);$i++)
{
if($topic_id[$i]==$id)
{
$res=true;
break;
}
return $res;
}


$sql=mysql_query("Select last_update,id FROM topic ");

for($i=0;$i<mysql_num_rows($sql);$i++) {
$result = mysql_fetch_array($sql);
if(date("H:i:s")<$result['last_update'] and last($result['id'],$_COOKIE['topic_id'])==false)
{
//выводим что топик еще не прочитан
}
else {
//Обычный
}

?>
ну вот
$result['last_update'] - переменная последнего посешения сообшения в топике

__________________
Пока еще мы молоды,
пока бушует кровь.
Пошла учеба к черту.
Да Здарствует Любовь
(Романтик)

Сообщение отредактировано 1 раз(а), редактировал HiPeR , 11.12.2005 в 04:04.

11.12.2005 03:52 HiPeR оффлайн Искать сообщения : HiPeR Добавить HiPeR в адресную книгу
Понравилась тема? Поделитесь с друзьями!
Чтобы отвечать на сообщения и создавать новые темы, необходимо зарегистрироваться. Присоединяйся к нам! :-)
Перейти:

Все вопросы, связанные с деятельностью сайта и форума решаются с руководителем проекта.

powered by [censored] forum
7bit.team © 2001-2016