Hi can you help me? I am developing a Golf Handicap website. But my knowledge in the PHP language is not that much I'm just a beginner in PHP. I need to record all the score of each golf player and calculate the best 10 scores out of 20 games to get the handicap score. Not the 10 lowest score but the 10 highest score. I been studying it for a month but I can't get the exact code and logic for that golf handicap. Please help me.
<?php
include "class.agolfhandicap.php";
include "conn.php";
$gh=new agolfhandicap();
// Get the user name if submitted.
if(isset($_POST['user'])){
$user=$_POST['user'];
$gh->setuser($user);
}
if(isset($_POST['delete'])){ //delete the record
$id=$_POST['id'];
$gh->deleteGame($id);
}
if(isset($_POST['edit'])){ //edit the record
$id=$_POST['id'];
}
// If no user yet, ask for it.
if(!isset($_POST['user'])){
print "<form name='user' action='$_SERVER[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>
";
@$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
include "conn.php";
class agolfhandicap
{
var $user; // Username of golfer
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.
// 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(isset($_POST['submit'])){
// print "submit=".$_POST['submit'];
// $id=$_POST['id'];
$user=$_POST['user'];
$this->user=$user;
$date =$_POST['date1'];
$date=date('M / d / Y');
$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_query($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_query($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=isset($_POST['date1']);
$score=isset($_POST['score1']);
$crat=isset($_POST['crat1']);
$srat=isset($_POST['srat1']);
$course=isset($_POST['course1']);
}else{ //If editing get the values from the database
$queryGetPages = "SELECT * FROM `golfhcapu` WHERE `id`='$id'";
$resultGetPages = mysql_query($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 "<style>table{border-collapse:collapse}</style>";
print "<table border=3 cellpadding=6 >";
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='$_SERVER[PHP_SELF]' method='POST'>
";
print "<input type='hidden' name='user' value='$this->user'>
";
print "<input type='hidden' name='id' value='$id'>
";
print "<td><input type='text' size='20' name='date1' value='$date'></td>
";
print "<td><input type='text' size='5' name='score1' value='$score'></td>
";
print "<td><input type='text' size='5' name='crat1' value='$crat'></td>
";
print "<td><input type='text' size='5' name='srat1' value='$srat'></td>
";
print "<td><input type='text' size='30' name='course1' value='$course'></td>
";
print "</tr></table>
";
print "<br><table><tr>";
print "<td><input type='submit' name='submit' value='Submit'>
";
print "</form></td>";
print "<td><form name='frm' action='$_SERVER[PHP_SELF]' method='POST'>
";
print "<input type='hidden' name='user' value='$this->user'><br>";
print "<input type='submit' name='cancel' value='Cancel'>";
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 "<style>table{border-collapse:collapse}</style>";
print "<table border=3 cellpadding=6 >";
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='$_SERVER[PHP_SELF]'>
";
print "<input type='hidden' name='user' value='$this->user'>
";
print "<input type='hidden' name='id' value='$id'>
";
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>
";
print "<td><input type='submit' name='delete' value='Delete'></td>
";
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_query($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_query($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_query($sql) or die ("Delete failed: error was ".mysql_error());
return;
}
}
// End of class
?>
</div>