PDA

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?