0) { $other = ($phpver == 4 ? 3 : 4); echo '

Currently displaying PHP'. $phpver . ' bugs only. Display all bugs or only PHP' . $other . ' bugs.

' . "\n"; } else { echo '

Currently displaying all bugs. Display only PHP3 bugs or only PHP4 bugs.

' . "\n"; } mysql_connect("localhost","nobody",""); mysql_select_db("php3"); $query = "SELECT *,UNIX_TIMESTAMP(ts2)-UNIX_TIMESTAMP(ts1) AS timetoclose FROM bugdb"; if ($phpver > 0) { $query .= " WHERE SUBSTRING(php_version,1,1) = '$phpver'"; } $query .= " ORDER BY bug_type"; $result = mysql_unbuffered_query($query); while($row=mysql_fetch_array($result)) { $bug_type['all'][$row[bug_type]]++; switch (strtolower($row[status])) { case "closed": if ($row[timetoclose] > 0) { $time_to_close[] = $row[timetoclose]; } /* falls through */ case "bogus": $closed_by[$row[dev_id]]++; break; } $bug_type[strtolower($row[status])][$row[bug_type]]++; $bug_type[strtolower($row[status])]['all']++; $email[$row[email]]++; $php_version[$row[php_version]]++; $php_os[$row[php_os]]++; $status[$row[status]]++; $total++; } function bugstats($status, $type) { global $bug_type, $phpver; if ($bug_type[$status][$type] > 0) { return '' . $bug_type[$status][$type] . "\n"; } } mysql_freeresult($result); echo "\n"; /* prepare for sorting by bug report count */ foreach($bug_type['all'] as $type => $value) { if(!isset($bug_type['closed'][$type])) $bug_type['closed'][$type] = 0; if(!isset($bug_type['bogus'][$type])) $bug_type['bogus'][$type] = 0; if(!isset($bug_type['open'][$type])) $bug_type['open'][$type] = 0; if(!isset($bug_type['critical'][$type])) $bug_type['critical'][$type] = 0; if(!isset($bug_type['analyzed'][$type])) $bug_type['analyzed'][$type] = 0; if(!isset($bug_type['suspended'][$type])) $bug_type['suspended'][$type] = 0; if(!isset($bug_type['duplicate'][$type])) $bug_type['duplicate'][$type] = 0; if(!isset($bug_type['assigned'][$type])) $bug_type['assigned'][$type] = 0; if(!isset($bug_type['feedback'][$type])) $bug_type['feedback'][$type] = 0; } if(!isset($sort_by)) $sort_by = 'open'; if(!isset($rev)) $rev = 1; if($rev == 1) { arsort($bug_type[$sort_by]); } else { asort($bug_type[$sort_by]); } reset($bug_type); function sort_url($type) { global $sort_by,$rev,$phpver; if($type == $sort_by) { $reve = ($rev == 1) ? 0 : 1; } else { $reve = 1; } $ver = ($phpver != 0) ? "phpver=$phpver&" : ''; return ''.ucfirst($type).''; } echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo "\n"; echo "", "", "", "", "", "", "", "", "", "", "", "\n"; foreach ($bug_type[$sort_by] as $type => $value) { if(($bug_type['open'][$type] > 0 || $bug_type['critical'][$type] > 0 || $bug_type['analyzed'][$type] > 0 || $bug_type['suspended'][$type] > 0 || $bug_type['duplicate'][$type] > 0 || $bug_type['assigned'][$type] > 0 || $bug_type['feedback'][$type] > 0 ) && $type != 'all') { echo "", "", "", "", "", "", "", "", "", "", "", "\n"; } } echo "
Total bug entries in system:$total".sort_url('closed')."".sort_url('open')."".sort_url('critical')."".sort_url('analyzed')."".sort_url('suspended')."".sort_url('duplicate')."".sort_url('assigned')."".sort_url('feedback')."".sort_url('bogus')."
All:$total".bugstats('closed','all')." ".bugstats('open', 'all')." ".bugstats('critical', 'all')." ".bugstats('analyzed', 'all')." ".bugstats('suspended','all')." ".bugstats('duplicate', 'all')." ".bugstats('assigned','all')." ".bugstats('feedback','all')." ".bugstats('bogus', 'all')." 
$type:".$bug_type['all'][$type]."".bugstats('closed', $type)." ".bugstats('open', $type)." ".bugstats('critical',$type)." ".bugstats('analyzed', $type)." ".bugstats('suspended',$type)." ".bugstats('duplicate', $type)." ".bugstats('assigned',$type)." ".bugstats('feedback',$type)." ".bugstats('bogus', $type)." 
\n"; sort($time_to_close); $c=count($time_to_close); $sum=0; for($i=0;$i<$c;$i++) { $sum+=$time_to_close[$i]; } $median = $time_to_close[(int)($c/2)]; echo "

Bug Report Time to Close Stats\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Average life of a report:".ShowTime((int)($sum/$c))."
Median life of a report:".ShowTime($median)."
Slowest report closure:".ShowTime($time_to_close[$c-1])."
Quickest report closure:".ShowTime($time_to_close[0])."
\n"; echo "

Who is closing the bug reports?\n"; echo "\n"; arsort($closed_by); $i=0; while($i < 20) { list($who,$value)=each($closed_by); echo "\n"; $i++; } echo "
$who$value
\n"; commonFooter(); ?>