So here's my real problem...
I'm trying to integrate this with my website. I have a forum on my website powered by " Vanilla". I would like to setup this script so that only people that are members of the forum can use the script. AND the script will look to see if the user is logged in or not, and if they are, it will us there data as the username for the php script to store the scores etc.. in.
I'm sorry, but i dunno very much about php, anything i try to do right now with php takes hours and hours, i'm learning as much as possible, but i get stuck "with what ya'll would consider easy problems" all the time Undecided .
So if anyone could help point me in the right direction with what i'm trying to do i will be forever in debt. Grin
Below is the php script and the SQL that came with it.
First things first, i need to figure out the best place to put the SQL tables, since i'm trying to use the vanilla username db.
here's the SQL that came with it too.
CREATE TABLE `golfhcapu` (
`id` int(11) NOT NULL auto_increment,
`user` varchar(30) NOT NULL default '',
`course` varchar(50) default NULL,
`date` varchar(10) NOT NULL default '',
`score` int(11) NOT NULL default '0',
`crating` decimal(11,1) NOT NULL default '0.0',
`srating` int(11) default NULL,
`hcapdiff` decimal(11,1) NOT NULL default '0.0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=16 ;
There are 2 php files for this script, here they are below.
1. agolfhandicap.php
2. class.agolfhandicap.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('','','');// 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 ""; print "Enter your user name:"; print ""; print ""; print "";}else{// We have a username, so get new game data and display handicap and all games.print "<strong class='bbc'>Golf Game Database and Handicap Calculator for $user</strong>\n";$newgame=$gh->getnewgame($id);$id=($_POST['edit']=="")? "":$id;$gh->showform($id);$hc=$gh->gethcap();print ($hc==0)?"<strong class='bbc'>You need at least 5 games for a handicap index.</strong>":"<strong class='bbc'>Handicap for $user is $hc</strong>";// If you just want the data without displaying it, use next line.//$al=$gh->getAll();$gh->showall();}?>
// 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 © 2005 George A. Clarke, [email protected], [url="http://gaclarke.com/"]http://gaclarke.com/[/url]//// 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 golfervar $dbuser; // Username for databasevar $pw; // Password for databasevar $dbase; // Database namevar $db;var $all = array(); // Array used to return all game information from databasevar $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 namefunction 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 coursefunction 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=="")?"<strong class='bbc'>Enter a new game.</strong>":"<strong class='bbc'>Edit the game</strong>";print "";print "";print "Date(mm/dd/yyyy)";print "AdjustedGross Score";print "USGA CourseRating";print "USGA SlopeRating";print "Course Name";print "";print "";print "\n";print "\n";print "\n";print "\n";print "\n";print "\n";print "\n";print "\n";print "\n";print "";print "\n";print "";print "\n";print "\n";print "\n";print "";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 namefunction showall(){if($all=$this->getAll()){; print ""; print ""; print "GameNumber"; print "Date"; print "AdjustedGross Score"; print "USGA CourseRating"; print "USGA SlopeRating"; print "HandicapDifferential"; print "Course Name"; print "Edit"; print "Delete"; print ""; $n=count($all)-1; for($i=$n;$i>=0;$i--){$id=$all[$i]['id']; $j=$i+1; print "";print "\n";print "\n";print "\n"; print "$j"; print "".$all[$i]['date'].""; print "".$all[$i]['score'].""; print "".$all[$i]['crating'].""; print "".$all[$i]['srating'].""; print "".$all[$i]['hcapdiff'].""; print "".$all[$i]['course']."";print "\n";print "\n";print ""; print ""; } print "";}}// 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 ?>
And here are the resources..
Demo of script as is.. http://www.gaclarke....p/handicapu.php
and where the script came from.. http://phpclasses.pr...ckage/2546.html
And here's my golf site I'm trying to integrate this with... http://www.ncgolfers.com
So, I guess I need to somehow take the current user session that vanilla is using and apply it to this script. That's about all that needs to be done i guess right??
Thank you very much,
Wayne
Edited by waynem80, 22 July 2007 - 03:38 PM.