дальше быдлокод еще больше, массив потрошить, есть более красивый способ, но так как попробовать не на чем сейчас, не напишу
там один запрос можно сделать, просто если есть у кого время до сообразит
select * from user join (select count(*) from post_forum as cnt where id_user = user.id) on user.id = post_forum.id_user order by cnt desc limit 20
Koenig, я тоже насчёт одного запроса думал. Но тоже - нет где пробовать. Если бы у ТС Джон был - тогда другое дело. А то методом тыка писать код я не хочу.
ValekS, структура то есть, тот запрос выше из головы, думаю он работать не будет, но там примерно как то так
Логичное решения без JOIN
Автор добавь в таблицу users ячейку с forum_post и поставь счетчик при добавлении поста.
И будет тебя счастье.
# blackvj (12.08.2013 / 20:56)
Логичное решения без JOIN
Автор добавь в таблицу users ячейку с forum_post и поставь счетчик при добавлении поста.
И будет тебя счастье.
Не спорю,проще.Но уже поздно,я и так сделал.
Но по примеру этого кода,который дал Коениг,теперь можно узнавать данные из других таблих,например подсчитать сколько юзер написал в чате,сообщений и т.д.
# Koenig (12.08.2013 / 12:49)
Andrei4ik93, если быдлокодить то,
$arr = array();
$sql = mysql_query("select id, nick from user");
while($row = mysql_fetch_row($sql)) {
$count = mysql_result(mysql_query("select count(*) from p
ааа не помог этот код.
Он выводит просто юзеров а не по количеству постов
Andrei4ik93, добрался до компа
$sql = mysql_query("SELECT user.*, COUNT(forum_post.id) AS cnt FROM user JOIN forum_post ON (user.id = forum_post.id_user) GROUP BY user.id order by `cnt` desc limit 20");
while($row = mysql_fetch_assoc($sql)) {
echo '<div>Пользователь: <a href="/user/id=' . $row['id'] . '">' . $row['nick'] . '</a> Постов: '. $row['cnt'].'</div>';
}