Go Back   vb.org Archive > Community Discussions > Modification Requests/Questions (Unpaid)
  #1  
Old 11-14-2003, 06:55 AM
mfacer mfacer is offline
 
Join Date: Aug 2003
Location: Manchester, UK
Posts: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default has this been done? - percentage of posts in what forum/board

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!
Reply With Quote
  #2  
Old 11-14-2003, 07:08 AM
Zachery's Avatar
Zachery Zachery is offline
 
Join Date: Jul 2002
Location: Ontario, Canada
Posts: 11,440
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by mfacer
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
Reply With Quote
  #3  
Old 11-14-2003, 07:12 AM
mfacer mfacer is offline
 
Join Date: Aug 2003
Location: Manchester, UK
Posts: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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?
Reply With Quote
  #4  
Old 11-14-2003, 07:13 AM
Zachery's Avatar
Zachery Zachery is offline
 
Join Date: Jul 2002
Location: Ontario, Canada
Posts: 11,440
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by mfacer
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
Reply With Quote
  #5  
Old 11-14-2003, 09:02 AM
mfacer mfacer is offline
 
Join Date: Aug 2003
Location: Manchester, UK
Posts: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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!

PHP Code:
$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($percent1'.''') . "%</td></tr>";
    
    
$forum_threads 0//reset it.
    
}

echo 
"</table>"
that produces the following

http://www.yu-gi-oh-online.co.uk/for...s.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!!!
Reply With Quote
  #6  
Old 11-14-2003, 09:53 AM
Lesane's Avatar
Lesane Lesane is offline
 
Join Date: Oct 2001
Location: The Netherlands
Posts: 1,149
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here, with one query:

PHP Code:
<?

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>"; 
?>
Reply With Quote
  #7  
Old 11-14-2003, 12:38 PM
mfacer mfacer is offline
 
Join Date: Aug 2003
Location: Manchester, UK
Posts: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

hmm...that seems to produce only one forum...

http://www.yu-gi-oh-online.co.uk/for...3.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/for...2.php?userid=1
Reply With Quote
  #8  
Old 11-14-2003, 02:56 PM
Lesane's Avatar
Lesane Lesane is offline
 
Join Date: Oct 2001
Location: The Netherlands
Posts: 1,149
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

take the 'user' query out of it and loop that
Reply With Quote
  #9  
Old 08-22-2007, 10:16 PM
SBlueman SBlueman is offline
 
Join Date: Jan 2006
Posts: 717
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Does anyone know how to make this work?
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:05 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04548 seconds
  • Memory Usage 2,261KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete