View Full Version : has this been done? - percentage of posts in what forum/board
mfacer
11-14-2003, 06:55 AM
I was just wondering if this has already been done, since I have searched and couldnt find what I wanted, it looks like I'm gonna have to do it myself!
I want to be able to produce a chart on the users profile where you can see their percentage of posts in each forum. This is mainly because some members have a very high post count and they claim not to have spammed much.... when we can clearly see that their posts are mainly in the "SPAM" forum!!
I just wanna be able to produce a graph, probably using GD....
so, does anyone know of a hack thats already been done for this? or should I carry on writing it?
thanks! :)
Zachery
11-14-2003, 07:08 AM
I was just wondering if this has already been done, since I have searched and couldnt find what I wanted, it looks like I'm gonna have to do it myself!
I want to be able to produce a chart on the users profile where you can see their percentage of posts in each forum. This is mainly because some members have a very high post count and they claim not to have spammed much.... when we can clearly see that their posts are mainly in the "SPAM" forum!!
I just wanna be able to produce a graph, probably using GD....
so, does anyone know of a hack thats already been done for this? or should I carry on writing it?
thanks! :)
this might be abit server intensive >.> esp if not done right
mfacer
11-14-2003, 07:12 AM
hmm... good thinkin.... the server is already over loaded!!
I might just do something like
forum 1 = 34.3% of posts
forum 2 = 37.1% of posts
just a basic output of the raw stats.... i've added a mod on their forum so that it shows their percentage of over all posts to the total, but i think this hack would be quite good?
Zachery
11-14-2003, 07:13 AM
hmm... good thinkin.... the server is already over loaded!!
I might just do something like
forum 1 = 34.3% of posts
forum 2 = 37.1% of posts
just a basic output of the raw stats.... i've added a mod on their forum so that it shows their percentage of over all posts to the total, but i think this hack would be quite good?
you could cache the stats daily which would make it much lighter on the server
mfacer
11-14-2003, 09:02 AM
hmm...could do!
I've had a quick go... its nothing fancy, and its a seperate page from VB... once I know its working, I will integrate it! :)
$forum_threads = 0;
$count = 0;
echo "<table cellspacing='0' cellpadding='4' border='0'>\n";
echo "<tr><td width='180'><strong>Title</strong></td><td><strong>Your Posts</strong></td><td><strong>Total Replies</strong></td><td><strong>Percentage</strong></td></tr>";
$sqla = "select forumid,title,replycount from forum where allowposting = 1 and forumid != 25 and forumid != 28 order by forumid ASC";
$resulta = mysql_query($sqla) or die(mysql_error());
while ($rowa = mysql_fetch_array($resulta))
{
$sqlb = "select threadid,forumid from thread where forumid = " . $rowa['forumid'] . ";";
$resultb = mysql_query($sqlb) or die (mysql_error());
while ($rowb = mysql_fetch_array($resultb))
{
//now count the posts in this thread for the user
$sqlc = "select threadid,userid From post where userid = " . $_GET['userid'] . " AND threadid = " . $rowb['threadid'] . ";";
$resultc = mysql_query($sqlc) or die (mysql_error());
$forum_threads = $forum_threads + mysql_num_rows($resultc);
}
//now we need to add the number of posts from this thread to the number of posts from the
//other threads in this forum
//now work out the percentage
if ($forum_threads != 0)
{
$percent = (($forum_threads / $rowa['replycount']) * 100);
}
else
{
$percent = "0";
}
echo "<tr><td>" . $rowa['title'] . "</td><td>" . $forum_threads . "</td><td>" . $rowa['replycount'] . "</td><td>" . number_format($percent, 1, '.', '') . "%</td></tr>";
$forum_threads = 0; //reset it.
}
echo "</table>";
that produces the following
http://www.yu-gi-oh-online.co.uk/forum/percentages.php?userid=1
anyone got an suggestions how to neaten the code or anything? I tried to do an inner join, but it didnt work!! LOL!!!
Lesane
11-14-2003, 09:53 AM
Here, with one query:
<?
include('global.php');
$forum_threads = 0;
$count = 0;
echo "<table cellspacing='0' cellpadding='4' border='0'>\n";
echo "<tr><td width='180'><strong>Title</strong></td><td><strong>Your Posts</strong></td><td><strong>Total Replies</strong></td><td><strong>Percentage</strong></td></tr>";
$sqla = "select
forum.forumid
,forum.title
,forum.replycount
,thread.threadid
,post.threadid
, count(post.threadid) as totnu
from forum
left join thread ON forum.forumid=thread.forumid
left join post ON thread.threadid=post.threadid
where forum.allowposting = 1 and forum.forumid != 25 and forum.forumid != 28
AND userid=" . $_GET['userid'] . "
group by post.threadid
order by forum.forumid ASC";
$resulta = mysql_query($sqla) or die(mysql_error());
while ($rowa = mysql_fetch_array($resulta))
{
$forum_threads=$rowa['totnu'];
//now we need to add the number of posts from this thread to the number of posts from the
//other threads in this forum
//now work out the percentage
if ($forum_threads != 0)
{
$percent = (($forum_threads / $rowa['replycount']) * 100);
}
else
{
$percent = "0";
}
echo "<tr><td>" . $rowa['title'] . "</td><td>" . $forum_threads . "</td><td>" . $rowa['replycount'] . "</td><td>" . number_format($percent, 1, '.', '') . "%</td></tr>";
$forum_threads = 0; //reset it.
}
echo "</table>";
?>
mfacer
11-14-2003, 12:38 PM
hmm...that seems to produce only one forum...
http://www.yu-gi-oh-online.co.uk/forum/percentages3.php?userid=1
also, I am thinking of making some bar chart style things.... not sure if I need them or what.. but they dont seem to work... any ideas?
http://www.yu-gi-oh-online.co.uk/forum/percentages2.php?userid=1
Lesane
11-14-2003, 02:56 PM
take the 'user' query out of it and loop that
SBlueman
08-22-2007, 10:16 PM
Does anyone know how to make this work?
vBulletin® v3.8.12 by vBS, Copyright ©2000-2024, vBulletin Solutions Inc.