MrLols Posted August 8, 2011 Share Posted August 8, 2011 For a forum I have, I was wondering how to get the top 100 Posters I tried but kept getting errors & stuff so I decided to start fresh This is my counter of posts and topics : <?php $select = mysql_query("SELECT * FROM `posts` WHERE `post_by`='" . $pid . "' AND `post_first`='no';"); $posts = 0; while ($row = mysql_fetch_array($select)) { $posts += 1; } echo "Posts: " . $posts . PHP_EOL . nl2br(PHP_EOL) . PHP_EOL; $selectx = mysql_query("SELECT * FROM `topics` WHERE `topic_by`='" . $pid . "';"); $topics = 0; while ($trow = mysql_fetch_array($selectx)) { $topics += 1; } echo "Topics: " . $topics. PHP_EOL . nl2br(PHP_EOL) . PHP_EOL; } How would I make it count user_id's from the database , and make it list the top 100 with the most posts? My table for users is : user_id ; the ID of the user user_name ; name etc. MOD EDIT: code tags added. Link to comment https://forums.phpfreaks.com/topic/244237-php-top-100-posters/ Share on other sites More sharing options...
Maq Posted August 8, 2011 Share Posted August 8, 2011 Let's start by posting your errors. Link to comment https://forums.phpfreaks.com/topic/244237-php-top-100-posters/#findComment-1254429 Share on other sites More sharing options...
Pikachu2000 Posted August 8, 2011 Share Posted August 8, 2011 Please post in the proper forum, and when posting code, enclose it within the forum's . . . BBCode tags. Link to comment https://forums.phpfreaks.com/topic/244237-php-top-100-posters/#findComment-1254430 Share on other sites More sharing options...
WebStyles Posted August 8, 2011 Share Posted August 8, 2011 you are reading the entire table just to get a count... you don't need select * for that, you also don't need to loop through the results, you can just use mysql_num_rows or just count(). also, $select = mysql_query("SELECT * FROM `posts` WHERE `post_by`='" . $pid . "' AND `post_first`='no';"); does not require a semicolon in the statement (after `fist_post`='no') Link to comment https://forums.phpfreaks.com/topic/244237-php-top-100-posters/#findComment-1254445 Share on other sites More sharing options...
The Little Guy Posted August 8, 2011 Share Posted August 8, 2011 This query may work for what you want: select post_by, count(*) as total from posts p left join users u on(p.post_by = u.user_id) group by p.post_by desc limit 100 Link to comment https://forums.phpfreaks.com/topic/244237-php-top-100-posters/#findComment-1254497 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.