Sammenligne ip adresser i to tabeller og udskrive brugernavn
Jeg har leget med koden fra følgen artikel: http://www.eksperten.dk/artikler/1009.Jeg vil gerne kunne udskrive brugernavn, hvis dette er kendt.
Mine tabeller ser således ud:
CREATE TABLE `online`
(
`unique_numb` varchar(6) NOT NULL,
`first_time` datetime NOT NULL
default '0000-00-00 00:00:00' ,
`time` datetime NOT NULL
default '0000-00-00 00:00:00' ,
`bruger_id` varchar(255) NOT NULL,
`ip` varchar(20) NOT NULL,
`url` varchar(255) NOT NULL,
PRIMARY KEY (`ip`)
)
;
CREATE TABLE `brugere`
(
`bruger_id` varchar(255) NOT NULL,
`ip` varchar(20) NOT NULL,
PRIMARY KEY (`ip`)
)
;
Mine php koder ser således ud
reg.php :
session_start();
mysql_query("DELETE FROM online WHERE date_add(time,interval 5 MINUTE) < NOW()");
$ip = $_SERVER['REMOTE_ADDR'];
$url = $_SERVER['REQUEST_URI'];
if (!isset($_SESSION['online'])) {
$unique_numb = substr(str_shuffle('0123456789'),0,6);
$_SESSION['online'] = $unique_numb;
}
$online = mysql_query("SELECT COUNT(*) AS total FROM online WHERE ip='".$ip."' AND unique_numb = '".$_SESSION['online']."'");
if (!mysql_result($online,0)) {
mysql_query("INSERT INTO online (first_time,time,ip,url,unique_numb) VALUES (NOW(),NOW(),'".$ip."','".$url."','".$_SESSION['online']."')");
} else {
mysql_query("UPDATE online SET time=NOW(), url='".$url."' WHERE ip='".$ip."' AND unique_numb = '".$_SESSION['online']."'");
}
mysql_query("INSERT INTO online(bruger_id) SELECT (bruger_id) FROM brugere WHERE brugere.ip = online.ip ")
or die(mysql_error());
mysql_close();
online.php:
mysql_query("DELETE FROM online WHERE date_add(time,interval 5 MINUTE) < NOW()");
$ip = $_SERVER['REMOTE_ADDR'];
$url = $_SERVER['REQUEST_URI'];
$query=mysql_query("SELECT *,ROUND((UNIX_TIMESTAMP(`time`)-UNIX_TIMESTAMP(`first_time`))/60) AS online_time FROM online ORDER BY time DESC ");
while($row = mysql_fetch_array($query)) {
echo '<tr><td>'.$row['bruger_id'].'</td><td>'.$row['ip'].'</td><td>'.$row['url'].'</td><td><center>'.$row['online_time'].' min.</center></td></tr>';
}
mysql_close();
Når jeg åbner siden reg.php får jeg følgende:
Unknown table 'online' in where clause
Håber at nogen har tid / lyst til at hjælpe ;o)