Ich habe einen Tisch Anruf onlinenow. in dieser Tabelle enthalten onlineId (INT), onlineIP (INT) und onlineDateTime (TimeStamp). Diese Tabelle wird jedes Mal eingefügt, wenn der Client die Site besucht, und onDateTime wird bei jeder Seitenaktualisierung aktualisiert.Wie löscht man nach jeweils 15 Minuten Daten aus der MySQL-Tabelle?
Das Problem ist also, wie man ein Daten aus der Tabelle zu löschen onlinenow wenn onlineDateTime + 15 Minuten Beispiel:
ich die Seite um 08:00 Uhr besuchen und meinen Browser schließen, so dass der onlineDateTime wird nicht mehr aktualisiert werden erhalten und nach 08 : 15 die Daten
Hier ist mein Code, der Einsatz und Aktualisierungstabelle löschen Griff onlinenow:
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$errMsg = '';
if(empty($errMsg)) {
try {
$check = $connect->prepare("SELECT * FROM onlinenow WHERE onlineIP = '$ip'");
$check->execute();
$dataonline = $check->fetch(PDO::FETCH_ASSOC);
if ($dataonline == true) {
$stmt = $connect->prepare("UPDATE onlinenow SET onlineDateTime = '$naw' WHERE onlineIP = '$ip'");
$stmt->execute();
}else{
$stmt = $connect->prepare('INSERT INTO onlinenow (onlineIP, onlineDateTime) VALUES (:onlineIP, :onlineDateTime)');
$stmt->execute(array(
':onlineIP' => $ip,
':onlineDateTime' => $naw
));
}
}
catch(PDOException $e) {
$errMsg = $e->getMessage();
}
}
Was muss ich tun, um dieses Problem zu lösen?
Dank
Verwenden Sie den Cron-Job, um eine Aufgabe zu planen. –
Neben Cron-Job ist das möglich, einen Code zu machen, der mit diesem Problem umgehen kann? –
für welchen Zweck müssen Sie das Ergebnis von Online-Nutzern nehmen? –