Werte nach bestimmter Zeit aus DB löschen

26toto26

Mitglied
Hallo an alle,

ich habe folgenden Code auf meiner Seite eingebaut um den Wert für den benutzten Link um +1 zu erhöhen:

PHP:
// Verbindung zum MySQL-Server aufbauen
$db = @mysql_connect($host, $user, $pass);

// Die per GET übergebene URL einlesen und datenbanksicher machen
$ind = mysql_real_escape_string($_GET['ind']);

if ($db) {
    if (@mysql_select_db($datab, $db)) {
        // Eintrag fuer die übergebene URL um 1 erhöhen.
        $query = "UPDATE $table SET hits = hits + 1 WHERE ind = '$ind'";
        $result = @mysql_query($query);
		

        // Noch kein Eintrag für die URL vorhanden?
        if (mysql_affected_rows() == 0) {
            $sql_insert = "INSERT INTO $table (ind, hits) VALUES ('$ind', '1')";
            @mysql_query($sql_insert);
			
        }
    }
}


$url = "SELECT * FROM hot_link WHERE ind = '$ind' "; 
$result = mysql_query($url) OR die(mysql_error()); 
$row = mysql_fetch_assoc($result); 


// Auf übergebene URL weiterleiten
Header("Location: " . $row['url']);
//header("Location: row");
//echo $row['url'];
?>

mit diesen Teil werden die Top 20 auf meiner Seite wieder ausgegeben:

PHP:
$db = mysql_connect($host, $user, $pass) or die(mysql_error()); 
@mysql_select_db($datab, $db);
$sql = "SELECT * FROM i_link ORDER BY `hits` DESC LIMIT 0,20";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result)){ 
echo"<img src='Picture/icons/pfeil.gif'>
<a href='$row[url]' target='_blank'>  $row[name] ($row[hits])</a><br />";
}
error_reporting()
?>

Wie kann ich die Werte nach einer bestimmten Zeit (7 Tage, 1 Monat) wieder auf Null setzen, ohne diese Werte immer per Hand aus der SQL Datenbank zu löschen.

Danke und Gruß

Toto
 
Willst du alle Werte wieder zurücksetzen oder nur von einem bestimmten Datensatz?

Leert die komplette Tabelle:
PHP:
mysql_query("TRUNCATE ".$tabellenname."");

Löscht den Datensatz:
PHP:
mysql_query("DELETE FROM ".$tabellenname." WHERE `id`=".$id."");

Setzt den Zähler vom Datensatz auf 0:
PHP:
mysql_query("UPDATE ".$tabllenname." SET `hits` = 0 WHERE `id` = ".$id."");
 
Zuletzt bearbeitet:
Indem du ein TIMESTAMP Datenfeld hinzufügst
du kannst es sogar beim Erzeugen eines neuen Datensatzes direkt von mysql mit dem aktuellen Wert belegen.

der Rest ist dann eine Delete Abfrage...
 
Zurück