Edit: Fixed
I'm writing a user counter with mysql and php, this will update all connected users in 10 mins into a table, and every 10 mins, it will delete all records from that table.
My table is like:
id (int, auto increment) | session (varchar) | time (int)
But my query used to delete record is not correct, It doesnt work. Someone help me, plz!!!
<?php
$session = session_id();
$time = time();
$time_check = $time - 900;
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "user";
$tbl_name = "useronline";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Update session
$sql = "SELECT * FROM $tbl_name WHERE session='$session'";
$result = $conn->query($sql);
$count = $result->num_rows;
if ($count == "0") {
$sql1 = "INSERT INTO $tbl_name(session, time)VALUES('$session', '$time')";
$result1 = $conn->query($sql1);
} else {
$sql2 = "UPDATE $tbl_name SET time='$time' WHERE session = '$session'";
$result2 = $conn->query($sql2);
}
// Count session online
$sql3 = "SELECT * FROM $tbl_name";
$result3 = $conn->query($sql3);
$count_user_online = $result3->num_rows;
// Delete session
$sql4 = 'DELETE FROM useronline WHERE time<$time_check';
$result4 = $conn->query($sql4);
// Total session
$sql5 = 'SELECT id FROM useronline ORDER BY id DESC LIMIT 1';
$result5 = $conn->query($sql5);
$row = $result5->fetch_assoc();
$total = $row['id'];
mysqli_close($conn);
?>
output:
User online: <?php echo $count_user_online; ?><br />
Total : <?php echo $total; ?>