From a5684ef10fbd20dd335b99a0d53555498842268a Mon Sep 17 00:00:00 2001 From: Arun Persaud Date: Sat, 3 Nov 2007 13:39:56 +0100 Subject: [PATCH] NEW FEATURE: statistics page, version1 added a few statistics to an extra page, still not completely done, but already working --- index.php | 8 +- stats.php | 239 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 243 insertions(+), 4 deletions(-) create mode 100644 stats.php diff --git a/index.php b/index.php index 77c2c22..cf14fbd 100644 --- a/index.php +++ b/index.php @@ -1547,7 +1547,7 @@ else if(myisset("me")) if($re>$p-$offset) mysql_query("INSERT INTO Score". - " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'$p')"); + " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'".(240-$p)."')"); } /* re called something and won */ @@ -1574,11 +1574,11 @@ else if(myisset("me")) if($re>$p-$offset) mysql_query("INSERT INTO Score". - " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'$p')"); + " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'".(240-$p)."')"); } - /* re called something and won */ - if($call_re!=NULL) + /* contra called something and won */ + if($call_contra!=NULL) foreach(array(0,30,60,90,120) as $p) { if($call_contra<$p+1) diff --git a/stats.php b/stats.php new file mode 100644 index 0000000..83106cf --- /dev/null +++ b/stats.php @@ -0,0 +1,239 @@ +last login: ".date("r",$unixtime).""; + + DB_update_user_timestamp($myid); + + display_user_menu(); + + /* start statistics*/ + echo "
\n"; + +/* always: if player logged in: add link to cards */ + + /* total number of games */ + echo "

The number of finished games on this server is: "; + $result = mysql_query("SELECT COUNT(*) from Game". + " WHERE status='gameover'"); + $r = mysql_fetch_array($result,MYSQL_NUM); + $GameN = $r[0]; + echo " $GameN

\n"; + + /* number of solos */ + echo "

These kind of games have been played this often:
"; + $result = mysql_query("SELECT COUNT(*) as c,type from Game". + " WHERE status='gameover'". + " GROUP BY type". + " ORDER BY c DESC"); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + echo "".$r[1]." (".$r[0].")
"; + echo "

\n"; + + /* break up solos in types */ + echo "

These kind of solos have been played this often:
"; + $result = mysql_query("SELECT COUNT(*) as c,solo from Game". + " WHERE status='gameover'". + " AND type='solo'". + " GROUP BY solo". + " ORDER BY c DESC"); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + echo "".$r[1]." (".$r[0].")
"; + echo "

\n"; + + /* + 2 top user mit maximaler quote an solo (min 10 games) + + top scoring game: winning players + + game with the same cards: show 3 at random: + player who won, points, what kind of game + select g1.id, g2.id from game g1 left join game g2 on g1.randomnumbers=g2.randomnumbers where g1.idMost extra points in a game::
\n"; + $result = mysql_query("SELECT COUNT(*) as c,fullname FROM Score". + " LEFT JOIN User ON User.id=winner_id" . + " WHERE score IN ('fox','doko','karlchen')". + " GROUP BY fullname". + " ORDER BY c DESC LIMIT 1" ); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + echo $r[1]." (".$r[0].")
\n"; + echo "

\n"; + + /* longest and shortest game */ + $r=mysql_query("SELECT MIN(datediff(mod_date,create_date)),session". + " FROM Game WHERE status='gameover' GROUP BY status"); + if($r) + { + $short= mysql_fetch_array($r,MYSQL_NUM); + echo "

The shortest game took only ".$short[0]." days.
\n"; + } + + $r=mysql_query("SELECT MAX(datediff(mod_date,create_date)),session". + " FROM Game where status='gameover' GROUP BY status"); + if($r) + { + $long= mysql_fetch_array($r,MYSQL_NUM); + echo "The longest game took ".$long[0]." days.

\n"; + } + + /* most reminders */ + echo "

These players got the most reminders:
\n"; + $result = mysql_query("SELECT COUNT(*) as c,fullname from Reminder". + " LEFT JOIN User ON User.id=user_id". + " GROUP BY user_id". + " ORDER BY c DESC LIMIT 3" ); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + echo $r[1]." (".$r[0].")
\n"; + echo "

\n"; + + /* fox */ + echo "

These players caught the most foxes:
\n"; + $result = mysql_query("SELECT COUNT(*) as c,fullname from Score". + " LEFT JOIN User ON User.id=winner_id". + " WHERE score='fox'". + " GROUP BY winner_id". + " ORDER BY c DESC LIMIT 2" ); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + echo $r[1]." (".$r[0].")
\n"; + echo "

\n"; + + echo "

These players lost their fox most often:
\n"; + $result = mysql_query("SELECT COUNT(*) as c,fullname from Score". + " LEFT JOIN User ON User.id=looser_id". + " WHERE score='fox'". + " GROUP BY looser_id". + " ORDER BY c DESC LIMIT 2" ); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + echo $r[1]." (".$r[0].")
\n"; + echo "

\n"; + + /* which position wins the most tricks */ + echo "

Which positions at the table make the most tricks:
\n"; + $result = mysql_query("SELECT COUNT(*) AS c,winner FROM Trick". + " GROUP BY winner". + " ORDER BY winner ASC " ); + $r = mysql_fetch_array($result,MYSQL_NUM); + if($r[1]==NULL) /* ongoing games, no winner yet */ + $r = mysql_fetch_array($result,MYSQL_NUM); + echo " left ".$r[0]."
\n"; + $r = mysql_fetch_array($result,MYSQL_NUM); + echo " top ".$r[0]."
\n"; + $r = mysql_fetch_array($result,MYSQL_NUM); + echo " right ".$r[0]."
\n"; + $r = mysql_fetch_array($result,MYSQL_NUM); + echo " bottom ".$r[0]."
\n"; + echo "

\n"; + + /* + does the party win more often if they start + + echo "

The party playing first wins in"; + $result = mysql_query("SELECT COUNT(*) from Score". + " LEFT JOIN Game ON Game.id=game_id". + " WHERE score='againstqueens'". + " AND Game.status='gameover'". + " AND Game.type<>'solo'"); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + echo $r[1]." (".$r[0].")
\n"; + echo " games

\n"; + */ + + echo "

The contra party wins in "; + $result = mysql_query("SELECT COUNT(*) from Score". + " LEFT JOIN Game ON Game.id=game_id". + " WHERE score='againstqueens'". + " AND Game.status='gameover'". + " AND Game.type<>'solo'"); + while( $r = mysql_fetch_array($result,MYSQL_NUM)) + echo $r[0]; + echo " games

\n"; + + /* + how often is the last trick a non-trump trick + */ + + echo "
\n"; /* end output */ + } + } + else + { + /* send them back to the login page */ + echo "

Please log in

"; + } + +output_footer(); +DB_close(); + +/* + *Local Variables: + *mode: php + *mode: hs-minor + *End: + */ +?> + + -- 2.25.1