resultq("SELECT bigpostersupdate FROM misc") <= ctime()-(3600 * 8)) { $sql->query("TRUNCATE biggestposters"); $sql->query("INSERT INTO biggestposters " ."(id, posts, waste) " ."SELECT u.id, u.posts, SUM(LENGTH(pt.`text`)) " ."FROM `posts` p " ."LEFT JOIN `users` u ON p.user = u.id " ."LEFT JOIN `posts_text` pt on p.id = pt.pid " ."WHERE (u.posts >= 5 OR u.posts < 0) GROUP BY p.user"); $sql->query("UPDATE biggestposters SET average = waste / posts"); $sql->query("UPDATE misc SET bigpostersupdate = ".ctime()); } $posters = $sql->query("SELECT bp.*, u.name, u.regdate, u.minipic, u.sex, u.powerlevel FROM biggestposters bp LEFT JOIN users u ON bp.id=u.id ORDER BY $sort DESC"); print " $header
$tblstart $tccellc colspan=7>Biggest posters, $headertext $tccellh width=30># $tccellh colspan=2>Username $tccellh width=200>Registered on $tccellh width=130>Posts $tccellh width=130>Size $tccellh width=130>Average "; for($i=1; $user = $sql -> fetch($posters); $i++) { if($i == 1) $max = $user['waste']; if ($user['waste'] != $oldcnt) $rank = $i; $oldcnt = $user['waste']; $namecolor=getnamecolor($user['sex'],$user['powerlevel']); $col = ""; if ($user['average'] >= 500) $col = "#88ff88"; if ($user['average'] >= 750) $col = "#8888ff"; if ($user['average'] <= 200) $col = "#ffff80"; if ($user['average'] <= 100) $col = "#ff8080"; if ($user['average'] <= 0) $col = "#888888"; $avgc = number_format(abs($user['average']), 1); if ($col) $avgc = "$avgc"; print " $tccell1>$rank $tccell1 width=16>". ($user['minipic'] ? "" : " ") ." $tccell2l>". $user['name'] ." $tccell1>".date($dateformat, $user['regdate'] + $tzoff) ." $tccell1r>". $user['posts'] ." $tccell1r>". number_format($user['waste']) ." $tccell2r>". $avgc ." "; } print " $tblend $smallfont(Note: this doesn't take into account quotes, joke posts, or other things. It isn't a very good judge of actual post content, just post size.)
(This table is cached and updated every few hours.) $footer"; printtimedif($startingtime); ?>