Have an account? Sign in
Login  Register  Facebook
getting error in my php query
I am getting an error message in my php query.

Error being displayed:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1294251744','127.0.0.1','/register')' at line 2

my code:

<?php 
require_once("includes/database.php"); 

//Set timeout to 5 minutes
$timeoutseconds  =  300 ;

//get the time 
$timestamp  =  time();
//Delete all users that are no online after the time out allowed
$timeout  =  $timestamp - $timeoutseconds ;

// stores users IP addresss	
$user_ip = $_SERVER['REMOTE_ADDR'];
// Automatically collects the hostname or domain  like example.com) 
$host  = $_SERVER['HTTP_HOST'];
$host_upper = strtoupper($host);
$path   = rtrim(dirname($_SERVER['PHP_SELF']), '/\');

//insert the values
$sql = "INSERT INTO totalonline(timestamp, ip, file)
			VALUES (''$timestamp','$user_ip','$path')";
			
	$result = mysql_query($sql, $conndb) or die(mysql_error());
	
	
//delete values when they leave
mysql_query("DELETE FROM totalonline WHERE timestamp < $timeout");

//grab the results
$sql = "SELECT DISTINCT ip FROM totalonline WHERE file='$path' ";
			
	$result = mysql_query($sql, $conndb) or die(mysql_error());
	
//number of rows = the number of people online 
	$user = mysql_num_rows($result);


//spit out the results 

if( $user  ==  1 ) { 
echo "$user User online"; 
} else { 
echo "$user User online"; 
} 

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Contact form</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta http-equiv="imagetoolbar" content="no" />
<link href="style/core.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
</head>
<body>
<div id="wr">
	<h1>Users</h1>
    
       
           
</body>
</html>
also if I wanted to show the number of usrs in the html code, how would that be done using the same
if( $user  ==  1 ) { 
echo "$user User online"; 
} else { 
echo "$user Users online"; 
} 


so that if only one user is online it says "1 user online" and if their were 2 or more users online it would give a message "2 users online"

thanks
Started: September 22, 2011 Latest Activity: September 22, 2011 php mysql
2 Answers
Change this:
//insert the values
$sql = "INSERT INTO totalonline(timestamp, ip, file)
            VALUES (''$timestamp','$user_ip','$path')";
to this:
//insert the values
$sql = "INSERT INTO totalonline(timestamp, ip, file)
            VALUES ('$timestamp','$user_ip','$path')";
You had two single quotes instead of one. Also, near the end, you probably want to change this:
if( $user  ==  1 ) { 
echo "$user User online"; 
} else { 
echo "$user User online"; 
}
to this:
if( $user  ==  1 ) { 
echo "$user User online"; 
} else { 
echo "$user User offline"; 
} 

Posted: Go
In: September 22, 2011

You have double \' in the values field;)
//insert the values
$sql = \"INSERT INTO totalonline(timestamp, ip, file)
            VALUES (\'\'$timestamp\',\'$user_ip\',\'$path\')\";
Right before $timestamp. It\'s better to do
//insert the values
$sql = \'INSERT INTO totalonline(timestamp, ip, file)
            VALUES (\'.$timestamp.\',\"\'.$user_ip.\"\',\"\'.$path.\'\")\';
because that way you make sure the db understands ip and path are strings.

Posted: MacOS
In: September 22, 2011

Your Answer

xDo you want to answer this question? Please login or create an account to post your answer