hi, habe ein problem und zwar will ich die zur zeit befindlichen angemeldeten user der homepage anzeigen lassen, dazu lasse ich auf jeder Seite den Timestamp des users erhöhen und in die Datenbankeintragen. Ein anderes Script soll nun alle Timestamps mit time() vergleichen und die user anzeigen die einen höheren Timestamp als time() besitzen. Leider werden immer alle Benutzer der Dantenbank ausgegeben.Kann mir jmd helfen?
online.php (gibt die user aus)
PHP-Code:
<?php
$dbuser="root
$dbpwd="";
$dbhost="localhost";
$dbname="useronline";
$timestam = time();
$times = $timestam + 300 ;
// Aufbau der Datenbankverbindung
$connectionid = mysql_connect ($dbhost, $dbuser, $dbpwd);
if (!mysql_select_db ("$dbname", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT Nickname FROM benutzerdaten";
$result = mysql_query ($sql);
$num_rows =mysql_num_rows($result);
echo "$num_rows User";
$sqltimestamp = "SELECT Nickname, timestamp FROM benutzerdaten WHERE Timestamp > $timestam";
$sqltimestamp2= mysql_query ($sqltimestamp);
$sqltimestamp3= mysql_fetch_array($sqltimestamp2);
$timestamp = $sqltimestamp3["timestamp"];
$nick = $sqltimestamp3["Nickname"];
echo "<tr>n";
while( $a_row = mysql_fetch_row( $result )){
foreach ($a_row as $field){
echo "t<td><font color=#00CC00>[b]".stripslashes($field)."[/b]</font></td>\n";
}
echo "</tr>\n";
}
?>
timestamp.php (aktualisiert den Timestamp in der DB)
PHP-Code:
<?php
$dbuser="root";
$dbpwd="";
$dbhost="localhost";
$db="useronline";
$time = time();
// Aufbau der Datenbankverbindung
$connectionid = mysql_connect ($dbhost, $dbuser, $dbpwd);
if (!mysql_select_db ("$db", $connectionid))
{
die (mysql_error());
}
if (isset($_SESSION["user_id"])) {
$sqltime = "UPDATE benutzerdaten SET timestamp = '$time' WHERE Nickname ='$_SESSION[user_id]' LIMIT 1 ";
mysql_query ($sqltime);
}
?>
Danke für eure Hilfe