Ergebnis 1 bis 8 von 8

Thema: Datenbankeinträge nach 00:00 Uhr löschen

  1. #1
    Großmeister(in) Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard Datenbankeinträge nach 00:00 Uhr löschen

    Also ich habe ein Script, dass die IP des Clienten und den aktuellen Timestamp in die Datenbank speichert. Das selbe Script prüft voher ob ein Eintrag mit der aktuellen ClientIP vorhanden ist. Wenn nein dann speichert es die IP und wenn ja dann gibt es einen Fehler aus. Nun möchte ich es so machen, dass die Einträge immer um 00:00 Uhr jede Nacht gelöscht werden. das kann ja dann ganz am anfang vom script geprüft und ausgeführt werden. Nur hab ich keinen plan wie ich dem script sdagen soll, das es die immer um 00 Uhr löschen soll. Das kann ich doch bestimmt irgendwie über den abgespeicherten Timestamp prüfen oder? Kann mir da bitte jemand helfen?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Datenbankeinträge nach 00:00 Uhr löschen

    Das könntest Du auch bei jedem Aufruf des Scripts laufen lassen. Löscht alle Einträge bis 23:59 des Vortages. Ich gehe davon aus Du meinst wirklich einen Timestamp, nicht ein DATE-Feld.

    Code:
    DELETE FROM tabelle WHERE spaltemitdatum <= UNIX_TIMESTAMP(DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY),'%Y-%m-%d 23:59:59')

  3. #3
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Datenbankeinträge nach 00:00 Uhr löschen

    Ja richtiger timestamp der per NOW() in ein Timestampfeld der tabelle geschrieben wird.
    Ich probier das von dir morgen mal aus danke. ich geh schalfen gute nacht.

  4. #4
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Datenbankeinträge nach 00:00 Uhr löschen

    Was jetzt? NOW() oder UNIX_TIMESTAMP()? Ist ein Unterschied!

  5. #5
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Datenbankeinträge nach 00:00 Uhr löschen

    Was ist denn UNIX-TIMESTAMP?
    Wenn ich die Daten speichere benutze ich NOW()
    Sollte ich lieber das andere benutzen?

  6. #6
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Datenbankeinträge nach 00:00 Uhr löschen

    So also ich hab mal etwas weitergearbeitet.
    So sieht es jetzt aus:
    PHP-Code:
    <?php
    $user_check 
    "SELECT * FROM members WHERE user_hash='{$_GET['user']}'";
    $user_check mysql_query($user_check,$resource);
    $row mysql_fetch_array($user_check);
    if (
    mysql_num_rows($user_check) == 0) {
        echo 
    "Diesen Spieler gibt es nicht.";
    } else {
        
    $delete_ip = @mysql_query("DELETE FROM hack_ip_sperre WHERE sperre <= UNIX_TIMESTAMP(DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY),'%Y-%m-%d 23:59:59')");
        
    $ip_check = @mysql_query("SELECT * FROM hack_ip_sperre WHERE ip='{$_SERVER['REMOTE_ADDR']}' AND user_hash='{$_GET['user']}'");
        
    $client mysql_fetch_array($ip_check);
        if (
    mysql_num_rows($ip_check) == 0) {
            
    $stufe $row['hacklevel'];
            
    $min_max_check = @mysql_query("SELECT * FROM hacklevel_info WHERE hacklevel='{$stufe}'");
            
    $rand mysql_fetch_array($min_max_check);
            
    $min $rand['min'];
            
    $max $rand['max'];
            
    $credits $row['credits'];
            
    $neu rand($min,$max);
            
    $betrag $credits $neu;
            
    $update_user = @mysql_query("UPDATE members SET credits='{$betrag}' WHERE id='{$row['id']}'");
            
    $client_sperren = @mysql_query("INSERT INTO hack_ip_sperre (ip,user_hash,sperre) VALUES ('{$_SERVER['REMOTE_ADDR']}','{$row['user_hash']}','".time()."')");
            echo 
    "Dir wurden ".$neu." Credits durch einen Überfall von ".$row['nickname']." gestohlen.";
        } else {
            echo 
    "Dieser User hat Sie heute schon überfallen. Erst wieder ab 00:00 Uhr.";
        }
    }
    ?>
    Klappt alles soweit. Ob es die Daten um 00:00 Uhr löscht werde ich heut nacht sehen. Jetzt hätte ich noch eine Frage. Wie kann ich in dieses Script etwas einbauen, was den Clienten nur alle 3 Minuten auf irgendeinen Link zum Script klicken lässt.
    Also das Script ist folgendes:
    Jeder meine Spieler bekommt einen Link und kann ihn weiterschicken, wenn wer drauf klickt, dann bekommt der Spieler dafür Geld.
    Ich will es jetzt so machen, das der Client der drauf klickt einen Spieler am Tag nur einmal klicken darf, was bisher auch klappt und ich möchte das wenn der Client 2 Verschiedene Spieler hinterienander klicken will mindestens 3 Minuten warten muss. Da weiß ich leide rnicht genau wie ich das in dieses Script einbauen soll.
    In der Datenbank wird jetzt auch der UNIX TIMESTAMP gespeichert mit time().
    Hoffe Ihr könnt mir helfen, danke.
    Don't follow me, I run into walls.

  7. #7
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Datenbankeinträge nach 00:00 Uhr löschen

    Den Unix-Zeitstempel (von dem du scheinbar inzwischen weißt was er ist) kannst Du in MySQL auch direkt schreiben mittels

    Code:
    SELECT UNIX_TIMESTAMP()
    (ist nur ein Beispiel)

    Wenn Du 3 Minutensperren einbauen willst musst Du wieder mit den von mir genannten MySQL-Funktionen arbeiten. DATE_SUB um etwas vom Datum abzuziehen und das ganze mit einem anderen Datum vergleichen

  8. #8
    Großmeister(in)
    Themenstarter
    Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Datenbankeinträge nach 00:00 Uhr löschen

    Müsste ich nicht in meinem Fall etwas dazuzählen? Sagen wir ich lesen aus ob diese IP schonmal geklickt hat heute, wenn ja dann folgendes:
    Prüfen welcher timestamp gesetzt wurde. Wenn dieser timestamp mehr als 180 Sekunden vorbei ist dann kann die IP wieder klicken wenn nicht dann muss eine Meldung erscheinen vonwegen du kannst erst wieder klicken wenn x Minuten und x sekunden rum sind.
    Müsste doch dann irgendwie so sein:
    PHP-Code:
    $endzeit $eingetragene_zeit 180;
    if (
    time() == $endzeit) {
     
    klickprozess
    } else {
     echo 
    "Erst wieder in 3 Minuten.";

    Liege ich da richtig?
    Wenn ja wie bau ich das am besten in meinen Code ein? ich hab echt schon alles mögliche probiert abe rich bekomms einfach nciht hin...
    Wenn ich nciht richtig liege, könnt ihr mir bitte noch etwas weiterhelfen? >.<

    EDIT//
    Kann jetzt ersten Test liefern...
    Daten haben sich um 23:59:59 Uhr nicht gelöscht nach abruft des scripts.
    Verwendeter Code:
    PHP-Code:
    DELETE FROM hack_ip_sperre WHERE sperre <= UNIX_TIMESTAMP(DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY),'%Y-%m-%d 23:59:59'
    Geprüft über PHPMyAdmin => Fehler:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    DELETE FROM hack_ip_sperre WHERE sperre <= UNIX_TIMESTAMP( DATE_FORMAT( DATE_SUB( NOW( ) , INTERVAL 1 DAY ), '%Y-%m-%d 23:59:59' )
    Geändert von MyXoToD (08.12.2009 um 01:10 Uhr)
    Don't follow me, I run into walls.

Ähnliche Themen

  1. neueste 10 Datenbankeinträge anzeigen
    Von NyctalusNoctula im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 24.11.2008, 19:17
  2. Datenbankeinträge vergleichen ?
    Von Ptrol im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 23.11.2006, 09:13
  3. Mehrfache Datenbankeinträge statt einen.
    Von Gastuser im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 03.11.2006, 12:45
  4. Jeden Monat Datenbankeinträge verschieben, aber wie?
    Von Wasserleiche im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 11.04.2006, 18:16
  5. formular für datenbankeinträge
    Von nils1 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 23
    Letzter Beitrag: 25.09.2005, 21:38

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •