Einträge, die 10 minuten überfällig sind löschen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absatz
anweisung
counter
daten
gel
insert
kategorie
minute
normalerweise
nutzen
pawort
problemzone
sache
set
sofort
tabelle
update
vorschau
zeile
zusammen
-
erstemal moinsen zusammen ^^
ich hab ein kleines Problem, aber trozdem h?llt mich das iwie voll auf... normalerweise m?sste das gehen, aber dann doch wieder net... aber naja, ich erkl?rs euch mal.
ich mache gerade sowas wie nen Applikator. Daf?r brauch ich nat?rlich ne Datenbank, weil ich zum einen ne Vorschau erstellen und eine Rechnung erstellen muss. F?r die Vorschau ist das leicht, ich send die gew?nschten "Dinge" an meine Vorschau und die Daten lasse ich dann mit Get-Variablen rundlaufen, falls mal was aktualisiert wird... das Billd soll man ja schlie?lich net die ganze Zeit ganz von vorn erstellen. F?r die Rechnung brauche ich dann aber eine MySQL-Tabelle... nur die Sache ist die... man benutzt einen T?renapplikator ja net immer und die Tabelle soll auch net unendlich gro? und un?bersichtlich werden. Deshalb will ich alle Eintr?ge, die 10 Minuten ?berf?llig sind l?schen lassen.
hier ist mal das kleene aber feine scriptschen:
//Hier baue ich die Verbindung auf... Xampp daten, keine echten... $verbindung = mysql_connect ("localhost", "martin", "karl") or die ("keine Verbindung m?glich. Benutzername oder Passwort sind falsch"); mysql_select_db("homepage") or die ("Die Datenbank existiert nicht."); $kategorie = $_GET['kategorie']; // Hier wird gepr?ft, ob die IP der Person schon in der Tabelle ist //wenn nicht, dann wird die IP eingef?gt $pruefe_ip = mysql_query("SELECT ip FROM counter WHERE ip='".getenv (REMOTE_ADDR)."'"); $zeilen = mysql_num_rows($pruefe_ip); if($zeilen==0) { mysql_query("INSERT INTO counter ( ip , time )VALUES ( '".getenv (REMOTE_ADDR)."', '".time()."')"); } //Hier wird die Zeit der jeweiligen IP als Timastamp aktualisiert //damit PHP wei?... aha, die IP ist hier noch aktiv $timestamp = time(); $ip = getenv (REMOTE_ADDR); $aendern = "UPDATE counter Set time='$timestamp' WHERE ip = '$ip'"; $update = mysql_query($aendern); //und jetzt komm die Problemzone //alle IPs, die seid 10 Minuten die Seite nicht mehr nutzen, sollen //aus der Tabelle gel?scht werden. Nur leider l?scht er die immer sofort //und nicht erst nach 10 Minuten if($timestamp > (time()-1200)) { $loeschen = "DELETE FROM counter WHERE time>'".(time()-1200)."'"; $loesch = mysql_query($loeschen); }
also... nochmal ganz kurz:
1. IP wird bei erstmaliger Nutzung in Tabelle eingef?gt
2. Wenn die IP schon da ist, wird der Timestamp aktualisiert
3. Wenn eine andere IP die Seite nutzt, pr?ft PHP die erste IP, ob diese schon 10 Minuten lang inaktiv ist. Ist das der Fall, soll die ganze Zeile der inaktiven IP gel?scht werden.
das macht er aber nicht. Er l?scht die erste IP n?mlich sofort, ohne diese IP zu pr?fen.
Wenn mir jemand weiterhelfen kann, bin ich sehr dankbar... davon ist n?mlich abh?ngig, ob ich nun meine 2000? bekomme oder net.
Vielen Vielen Dank schonmal im Vorraus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
der teufel stck im letzten absatz...
ersters brauchs du die if anweisung nicht und zweiten l?scht du daten s?tze wo
x gr??er ist als x - y ....
# wenn zeit in der datenbank KLEINER ist als jetzt - 10 min, dann l?schen $loeschen = "DELETE FROM counter WHERE time < ".(time()-1200); $loesch = mysql_query($loeschen);
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage