Hallo,
schwer das in einen Tiel zu fassen
Also, ich habe hier ein Bilder Hosting script.
2 Tabellen, einmal wo die Bilder gespeichert werden, name, ordner und so, und einmal wo die views gespeichert werden, also wann ein bild angeschaut wurde und so.
Jetzt will ich, die Bilder die seid 10 Tagen nicht angeschaut wurden, gelöscht werden, nur komme ich damit einfach nicht klar.
Ich muss ja jetzt eigentlich erstmal überprüfen, ob in der tabelle wo die views drinne stehen ein eintrag vom dem bild ist, wenn ja muss überprüft werden, von wann der eintrag ist und damit komme ich einfach nicht klar.
Standart war das so hier beim script, aber das überlastet immer den Server mit der Abfrage:
Danke an jede hilfe.
Gruss Simon
schwer das in einen Tiel zu fassen
Also, ich habe hier ein Bilder Hosting script.
2 Tabellen, einmal wo die Bilder gespeichert werden, name, ordner und so, und einmal wo die views gespeichert werden, also wann ein bild angeschaut wurde und so.
Jetzt will ich, die Bilder die seid 10 Tagen nicht angeschaut wurden, gelöscht werden, nur komme ich damit einfach nicht klar.
Ich muss ja jetzt eigentlich erstmal überprüfen, ob in der tabelle wo die views drinne stehen ein eintrag vom dem bild ist, wenn ja muss überprüft werden, von wann der eintrag ist und damit komme ich einfach nicht klar.
Standart war das so hier beim script, aber das überlastet immer den Server mit der Abfrage:
PHP:
<? require_once("../config/config.php"); ?>
<? require_once("top_inc.php"); ?>
<?
$days = $_POST['days'];
$button = $_POST['button'];
if ($days != "") {
$link = mysql_connect($db_server, $db_user, $db_password) or die("Could not connect");
mysql_select_db($db_name) or die("Could not select database");
// find images added before date selected with zero hits
$result = mysql_query("SELECT i.filename as filename, i.filepath as filepath, i.tn_filename as tn_filename FROM images i LEFT OUTER JOIN imagehits ih ON i.filename = ih.filename WHERE i.added <= date_add(now(), interval -" . $days . " day) GROUP BY i.filename HAVING count( ih.filename ) = 0") or die("Query failed");
$ct1 = mysql_num_rows($result);
if ($button == "Delete Images") {
while ($line = mysql_fetch_array($result)) {
// remove image
unlink($_SERVER['DOCUMENT_ROOT'] . $line['filepath'] . $line['filename']);
// remove image from database
$queryX = "delete from images where filename = '" . $line['filename'] . "'";
mysql_query($queryX) or die("Could not delete.");
// remove image thumbnail
if ($line['tn_filename'] != "") {
unlink($_SERVER['DOCUMENT_ROOT'] . $line['filepath'] . $line['tn_filename']);
}
}
}
mysql_free_result($result);
// find images added before date selected with last hit before date selected
$result = mysql_query("SELECT ih.filename as filename, i.filepath as filepath, i.tn_filename as tn_filename FROM imagehits ih LEFT OUTER JOIN images i ON i.filename = ih.filename where ih.filename not like 'tn_%' and i.filepath is not null and i.tn_filename is not null group by ih.filename having max(ih.timestamp) < date_add(now(), interval -" . $days . " day)") or die("Query failed");
$ct2 = mysql_num_rows($result);
if ($button == "Delete Images") {
while ($line = mysql_fetch_array($result)) {
// remove image
unlink($_SERVER['DOCUMENT_ROOT'] . $line['filepath'] . $line['filename']);
// remove image from database
$queryX = "delete from images where filename = '" . $line['filename'] . "'";
mysql_query($queryX) or die("Could not delete.");
// remove image thumbnail
if ($line['tn_filename'] != "") {
unlink($_SERVER['DOCUMENT_ROOT'] . $line['filepath'] . $line['tn_filename']);
}
}
}
mysql_free_result($result);
mysql_close($link);
}
?>
<span class="ctracks">UNBENUTZTE BILDER LÖSCHEN</span><br>
<br>
<hr>
<br>
<? if ($days == "" || $button == "Cancel") { ?>
<form name="delete" action="delete.php" method="post" style="margin-top: 0px; margin-bottom: 0px;">
Bilder, die die letzten <input type="text" name="days" size="3" maxlength="3"> tage nicht angeguckt wurde.<br>
<br>
<input type="submit" name="button" value="Continue"><br>
</form>
<? } else if ($button != "Delete Images") { ?>
<form name="delete" action="delete.php" method="post" style="margin-top: 0px; margin-bottom: 0px;">
Es wurden <?= $ct1 ?> Bilder gefunden, die älter als <?= $days ?> Tage sind und 0 mal Angezeigt wurden.<br>
<br>
Es wurden <?= $ct2 ?> Bilder gefunden, die älter als <?= $days ?> Tage sind, wo die letzte Anzeige vor <?= $days ?> war.<br>
<br>
<input type="hidden" name="days" value="<?= $days ?>">
<input type="submit" name="button" value="Delete Images" onclick="return verifyAction('Are you sure you want to delete these images?');"> <input type="submit" name="button" value="Cancel"><br>
</form>
<? } else { ?>
The images have been removed from the system. This includes file removal and database removal.<br>
<br>
Image statistics for these images have been left in the database.<br>
<? } ?>
<br>
<? require_once("bottom_inc.php"); ?>
Danke an jede hilfe.
Gruss Simon