I have table trackVisit and within 6 fields: ID, firstVisit, lastVisit, numVisits, totalDuration, totalClicks
The whole code I have to change to my table.
Code was first for sqlite, but I would like to track with tables in db (updateVisit and getVisit is still with sqlite)
Please advise me what to change :rolleyes: :
<?
// Connect to MySQL-Server
$db="...";
$link=mysql_connect ("localhost", "...", "...");
if (!$link)
{
die ("Couldn't connect to MySQL:". mysql_error());
}
//Open $db
mysql_select_db ("$db")
or die ("Couldn't open $db: ". mysql_error());
$GLOBALS['slength']= 300;
$GLOBALS['visitID']= $_COOKIE['cookname'];
$GLOBALS['userStats'];
if (empty($visitID) )
{
$userStats=newuser();
// print "Welcome, first time user!";
}
else
{
// print "Welcome back, $visitID!";
$userStats=olduser($visitID);
}
function newuser()
{
$visitData = array
(
'firstVisit'=>time(),
'lastVisit'=>time(),
'numVisits'=>1,
'totalDuration'=>0,
'totalClicks'=>1,
);
insertVisit ($visitData); /* row 115 function InsertVisit*/
setcookie ("visitID", $visitData ['ID'], time()+(60*60*24*365*10), "/");
return $visitData;
}
function olduser($visitID)
{
$now = time();
$visitData = getVisit($visitID);
if ( ! $visitData )
{ return newuser();}
$visitData ['totalClicks']++;
if ( ($visitData ['lastVisit'] + $GLOBALS ['slength']) > $now)
{
$visitData ['totalDuration'] += ($now - $visitData ['lastVisit']);
}
else
{
$visitData ['numVisits']++;
}
$visitData ['lastVisit']=$now;
updateVisit ($visitData);
return $visitData;
}
function getVisit ($visitID)
{
$query = "
SELECT * from trackVisit WHERE ID = $visitID";
$result = sqlite_query ($GLOBALS['dbres'], $query);
if (! sqlite_num_rows ($result) )
{
return FALSE;
}
return sqlite_fetch_array ($result, SQLITE_ASSOC);
}
/* Old user*/
function updateVisit (&$visitData)
{
$update_pairs = array ();
foreach ($visitData as $field => $val)
{ if (!is_int ($field))
{
array_push ($update_pairs,"$field=$val" );
}
}
$query = "UPDATE trackVisit SET";
$query .= implode ("," ,$update_pairs);
$query .= "WHERE ID = ".$visitData ['ID'];
sqlite_query ($GLOBALS['dbres'],$query);
}
/* New user*/
function insertVisit($link)
{
$query = "INSERT INTO trackVisit (";
$query .= implode (",",array_keys ($visitData));
$query .= ")VALUES ( ";
$query .= implode ("," ,array_values ($visitData));
$query .= ")";
$result = @mysql_query($query, $link);
if($result and mysql_affected_rows($link) > 0)
{
return(mysql_insert_id($link)); /* field ID is automatic incremented*/
}
else
{
return(FALSE);
}
}
$id = insertVisit($link);
if($id)
{
$visitData['ID'] = $id;
}
else
{
# handle error situation here
}
?>