Техподдержка » Разработка форума (продолжение-2)
«23
Артём Григорьев
май 2010
Вот. Исправил, теперь выдаёт количество именно романов.
И Голь там действительно на первом месте!

Не зря я САКОД учил! Вот так выглядит запрос на количество зароманов данного пользователя:

<tt>SELECT

`pipe_forum_messages`.`authorid` AS `uid`,
COUNT(`pipe_forum_messages`.`id`) AS `count`

FROM

`pipe_forum_messages` INNER JOIN `pipe_forum_romanments` ON `pipe_forum_messages`.`id`=`pipe_forum_romanments`.`msgid`

WHERE 1=1

GROUP BY `authorid`
ORDER BY `count` DESC</tt>

Результатом работы запроса является таблица (пользователь, количество), упорядоченная по количеству в порядке убывания.

Отредактировано: 30 мая 2010 года в 13:53:24
Иннокентий Шувалов
май 2010
`pipe_forum_messages`.`authorid` AS `uid`,
COUNT(`pipe_forum_messages`.`id`) AS `count`
зачем ты AS делал? ты же потом им не пользуешься!
Артём Григорьев
май 2010
Пользуюсь при отображении данных.
У меня унифицирован вывод, чтобы потом не писать везде разное, я пишу везде <tt>$data['uid']</tt> и <tt>$data['count']</tt>. Просто в таблицах зароманов у нас <tt>uid</tt>, а в таблицах сообщений у нас <tt>authorid</tt>.

Отредактировано: 30 мая 2010 года в 14:00:56
Иннокентий Шувалов
май 2010
я чего-то не вкуриваю, как таблица зароманов устроена. типа, там на каждое зароманивание кладётся строка [msgid, uid] ?
Артём Григорьев
май 2010
<tt>pipe_forum_messages:</tt><ul><li><tt>id</tt></li><li><tt>topicid</tt></li><li><tt>authorid</tt> — автор сообщения</li><li><tt>visitid</tt></li><li><tt>timestamp</tt></li><li><tt>text</tt></li></ul>
<tt>pipe_forum_romanments:</tt><ul><li><tt>id</tt></li><li><tt>msgid</tt></li><li><tt>uid</tt> — тот, кто зароманил!</li><li><tt>coef</tt></li><li><tt>timestamp</tt></li></ul>
Т.е. для каждого заромана по <tt>msgid</tt> надо посмотреть, кто автор зароманенного сообщения.

Отредактировано: 30 мая 2010 года в 14:19:34
«23