Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // This is an example script using the agolfhandicap class to record games played
- // and calculate your golf handicap index.
- // It is a multi user database and can keep track of games for different players.
- // First enter your name or user name then the game information.
- // This script really should be used with a user/password login system for security.
- //
- // Version 1.1.0: Added Edit and Delete for a record in the database.
- //
- // ############ You must edit the username, password and database name further down.
- include "class.agolfhandicap.php";
- $gh=new agolfhandicap();
- // ######### Edit the next line to put your MySQL username, password, and database name. ########
- $gh->setupdb('username','password','databasename');
- // Get the user name if submitted.
- if($_POST['user']){
- $user=$_POST['user'];
- $gh->setuser($user);
- }
- if($_POST['delete']){ //delete the record
- $id=$_POST['id'];
- $gh->deleteGame($id);
- }
- if($_POST['edit']){ //edit the record
- $id=$_POST['id'];
- }
- // If no user yet, ask for it.
- if(!isset($_POST['user'])){
- print "<form name='usr' action='$PHP_SELF' method='POST'>";
- print "Enter your user name:<input type='text' name='user' size='20'>";
- print "<input type='hidden' name='hid' value='true'>";
- print "<input type='submit' value='Submit' name='submits'>";
- print "</form>";
- }else{
- // We have a username, so get new game data and display handicap and all games.
- print "<h2>Golf Game Database and Handicap Calculator for $user</h2>\n";
- $newgame=$gh->getnewgame($id);
- $id=($_POST['edit']=="")? "":$id;
- $gh->showform($id);
- $hc=$gh->gethcap();
- print ($hc==0)?"<h3>You need at least 5 games for a handicap index.</h3>":"<h3>Handicap for $user is $hc</h3><br>";
- // If you just want the data without displaying it, use next line.
- //$al=$gh->getAll();
- $gh->showall();
- }
- ?>
- <?php
- // class.agolfhandicap.php
- // version 1.0.1, 27 August, 2005
- //
- // AGolfHandicap class is a multi user database and can keep track of games for
- // multiple players and calculate their handicap indexes.
- // First enter your name or user name then the game information. It then
- // calculates the handicap differential for the entered game using the score,
- // course rating, and the slope rating.
- // A minimum of 5 games must be played before a handicap index can be calculated.
- //
- // This script really should be used with a user/password login system for security.
- //
- // version 1.0.1 -- 4 September, 2005
- // Corrected a possible error when there are no games played or less than
- // five games playes.
- // version 1.1.0 -- 9 September,2005
- // Added a check to make sure all fields of a game are entered before
- // saving it in the database.
- // Added a Delete button to each line of the table displaying the games played.
- // Added an Edit button to each line of the table displaying the games played.
- // Made the date save in the database in the format of mm/dd/yyyy (with leading
- // zeros) to fix a sorting bug.
- //
- // License
- //
- // Copyright (C) 2005 George A. Clarke, [email protected], http://gaclarke.com/
- //
- // This program is free software; you can redistribute it and/or modify it under
- // the terms of the GNU General Public License as published by the Free Software
- // Foundation; either version 2 of the License, or (at your option) any later
- // version.
- //
- // This program is distributed in the hope that it will be useful, but WITHOUT
- // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License along with
- // this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- // Place - Suite 330, Boston, MA 02111-1307, USA.
- //
- class agolfhandicap
- {
- var $user; // Username of golfer
- var $dbuser; // Username for database
- var $pw; // Password for database
- var $dbase; // Database name
- var $db;
- var $all = array(); // Array used to return all game information from database
- var $use=array(0=>0,0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,8,9,10);
- // $use is an array used to determine how many games
- // to use to calculate the handicap index.
- // Set up the MYSql database access.
- // $dbuser = database username
- // $pw = database password
- // $dbase = database name
- function setupdb($dbuser,$pw,$dbase)
- {
- $this->dbuser=$dbuser;
- $this->pw=$pw;
- $this->dbase=$dbase;
- $this->db = mysql_connect('localhost',$dbuser,$pw);
- }
- // Sets the player's name.
- function setuser($user)
- {
- $this->user=$user;
- return true;
- }
- // Retrieves the submitted new game information and stores it in the database.
- function getnewgame($id="")
- {
- if($_POST['submit']){
- // print "submit=".$_POST['submit'];
- // $id=$_POST['id'];
- $user=$_POST['user'];
- $this->user=$user;
- $date =$_POST['date1'];
- $d=explode("/",$date);
- $date=date("m/d/Y",mktime(0,0,0,$d[0],$d[1],$d[2]));
- $score = $_POST['score1'];
- $crat = $_POST['crat1'];
- $srat = $_POST['srat1'];
- $course = $_POST['course1'];
- if(!$date || !$score || !$crat || !$srat || !$course){
- return false;
- }else{
- $hcap=round(($score-$crat)*113/$srat,1);
- if($id==""){
- $queryInsert = "INSERT INTO `golfhcapu` (user,course,date,score,crating,srating,hcapdiff) VALUES ('$user','$course','$date','$score','$crat','$srat','$hcap')";
- $resultGetPages = mysql_db_query($this->dbase, $queryInsert) or die ("Query failed: error was ".mysql_error());
- }else{
- $upd="UPDATE `golfhcapu` SET user='$user',date='$date',course='$course',score='$score',crating='$crat',srating='$srat',hcapdiff='$hcap' WHERE id='$id'";
- $result=mysql_db_query($this->dbase,$upd);
- }
- $_POST['edit']="";
- $_POST['id']="";
- $_POST['date1']="";
- $_POST['score1']="";
- $_POST['crat1']="";
- $_POST['srat1']="";
- $_POST['course1']="";
- return true;
- }
- }else{
- return false;
- }
- }
- // This function displays a form to fill out to input the following
- // new game information:
- // Date
- // 18 hole score
- // Course Rating
- // Slope Rating of the course
- // Name of the golf course
- function showform($id="") //Give it the id number of a record to edit it.
- {
- if($id == ""){ //If not editing, get the POST data
- $date=$_POST['date1'];
- $score=$_POST['score1'];
- $crat=$_POST['crat1'];
- $srat=$_POST['srat1'];
- $course=$_POST['course1'];
- }else{ //If editing get the values from the database
- $queryGetPages = "SELECT * FROM `golfhcapu` WHERE `id`='$id'";
- $resultGetPages = mysql_db_query($this->dbase, $queryGetPages) or die ("Query failed: error was ".mysql_error());
- $row = mysql_fetch_array($resultGetPages);
- $date=$row['date'];
- $score=$row['score'];
- $crat=$row['crating'];
- $srat=$row['srating'];
- $course=$row['course'];
- }
- print ($id=="")?"<h4>Enter a new game.</h4>":"<h4>Edit the game</h4>";
- print "<table border=1>";
- print "<tr align='center'>";
- print "<td>Date<br>(mm/dd/yyyy)</td>";
- print "<td>Adjusted<br>Gross Score</td>";
- print "<td>USGA Course<br>Rating</td>";
- print "<td>USGA Slope<br>Rating</td>";
- print "<td>Course Name</td>";
- print "</tr>";
- print "<tr align='center'>";
- print "<form name='frm' action='$PHP_SELF' method='POST'>\n";
- print "<input type='hidden' name='user' value='$this->user'>\n";
- print "<input type='hidden' name='id' value='$id'>\n";
- print "<td><input type='text' size='15' name='date1' value='$date'></td>\n";
- print "<td><input type='text' size='5' name='score1' value='$score'></td>\n";
- print "<td><input type='text' size='5' name='crat1' value='$crat'></td>\n";
- print "<td><input type='text' size='5' name='srat1' value='$srat'></td>\n";
- print "<td><input type='text' size='30' name='course1' value='$course'></td>\n";
- print "</tr></table>\n";
- print "<br><table><tr>";
- print "<td><input type='submit' name='submit' value='Submit'>\n";
- print "</form></td>";
- print "<td><form name='frm' action='$PHP_SELF' method='POST'>\n";
- print "<input type='hidden' name='user' value='$this->user'>\n";
- print "<input type='submit' name='cancel' value='Cancel'>\n";
- print "</form></td></tr></table>";
- return true;
- }
- // Displays a table of all the games played by user with the latest game first. The
- // information displayed is:
- // Game number
- // Date of the game
- // Adjusted Gross Score
- // USGA Course Rating
- // USGA Slope Rating of the course
- // Handicap Differential of the game as calculated by this class
- // Course name
- function showall()
- {
- if($all=$this->getAll()){;
- print "<table border=1>";
- print "<tr align='center'>";
- print "<td>Game<br>Number</td>";
- print "<td>Date</td>";
- print "<td>Adjusted<br>Gross Score</td>";
- print "<td>USGA Course<br>Rating</td>";
- print "<td>USGA Slope<br>Rating</td>";
- print "<td>Handicap<br>Differential</td>";
- print "<td>Course Name</td>";
- print "<td>Edit</td>";
- print "<td>Delete</td>";
- print "</tr>";
- $n=count($all)-1;
- for($i=$n;$i>=0;$i--){
- $id=$all[$i]['id'];
- $j=$i+1;
- print "<tr align='center'>";
- print "<form method='POST' action='$PHP_SELF'>\n";
- print "<input type='hidden' name='user' value='$this->user'>\n";
- print "<input type='hidden' name='id' value='$id'>\n";
- print "<td>$j</td>";
- print "<td>".$all[$i]['date']."</td>";
- print "<td>".$all[$i]['score']."</td>";
- print "<td>".$all[$i]['crating']."</td>";
- print "<td>".$all[$i]['srating']."</td>";
- print "<td>".$all[$i]['hcapdiff']."</td>";
- print "<td>".$all[$i]['course']."</td>";
- print "<td><input type='submit' name='edit' value='Edit'></td>\n";
- print "<td><input type='submit' name='delete' value='Delete'></td>\n";
- print "</form>";
- print "</tr>";
- }
- print "</table>";
- }
- }
- // Retrieves the information for each game entered for 'user' in the database
- // and returns it in an multidimensional array.
- //
- // Data for the first game:
- // array[0]['id'] id number of record in database
- // array[0]['date'] date game was played
- // array[0]['score'] adjusted gross score of game
- // array[0]['crating'] course rating
- // array[0]['srating'] slope rating
- // array[0]['hcapdiff'] handicap differential
- // array[0]['course'] course name
- // Data for the second game:
- // array[1]['id']
- // array[1]['date']
- // array[1]['score']
- // array[1]['crating']
- // array[1]['srating']
- // array[1]['hcapdiff']
- // array[1]['course']
- //
- // etc
- //
- function getAll()
- {
- $queryGetPages = "SELECT * FROM `golfhcapu` WHERE `user`='$this->user' ORDER BY `date`";
- $resultGetPages = mysql_db_query($this->dbase, $queryGetPages) or die ("Query failed: error was ".mysql_error());
- $n=mysql_num_rows($resultGetPages);
- if($n > 0){
- $i=0;
- while ($row = mysql_fetch_array($resultGetPages)){
- $this->all[$i]['id']=$row['id'];
- $this->all[$i]['date']=$row['date'];
- $this->all[$i]['score']=$row['score'];
- $this->all[$i]['crating']=$row['crating'];
- $this->all[$i]['srating']=$row['srating'];
- $this->all[$i]['hcapdiff']=$row['hcapdiff'];
- $this->all[$i]['course']=$row['course'];
- $i=$i+1;
- }
- return $this->all;
- }else{
- return false;
- }
- }
- // Reads the database and retrieves up to the last 20 games played.
- // Determines how many of these games to use, and which ones, to calculate
- // the handicap index.
- // Using the chosen games, calculates the handicap index and returns it.
- // If fewer than five games have been played, returns 0.
- // A minimum of five games must have been played to determine the handicap index.
- //
- function gethcap()
- {
- $queryGetGames = "SELECT * FROM `golfhcapu` WHERE `user`='$this->user' ORDER BY `date` DESC LIMIT 20";
- $resultGetGames = mysql_db_query($this->dbase, $queryGetGames) or die ("Query failed: error was ".mysql_error());
- $nr=mysql_num_rows($resultGetGames);
- if($nr > 4){
- $tot=0;
- $n=$this->use[$nr];
- for($i=0;$i<$nr;$i++){
- $row = mysql_fetch_array($resultGetGames);
- $hcd[$i]=$row['hcapdiff'];
- }
- sort($hcd);
- for($i=0;$i<$n;$i++){
- $tot=$tot+$hcd[$i];
- }
- $hcap=floor(10*(($tot/$n)*.96))/10;
- return $hcap;
- }else{
- return 0;
- }
- }
- function deleteGame($id)
- {
- $sql = "DELETE FROM golfhcapu WHERE id=$id";
- $result = mysql_db_query($this->dbase, $sql) or die ("Delete failed: error was ".mysql_error());
- return;
- }
- }
- // End of class
Advertisement
Add Comment
Please, Sign In to add comment