Would this php code work to delete all orphaned attachments? (eg. attachments who don't have a post that actually useses them? (don't ask why... seems like one of the hacks i installed keep the attachments from getting deleted if a thread gets deleted.
PHP Code:
<?
echo "Jordan's fix the attachment table php script!<br><br>";
$connection = mysql_connect("localhost", "sampleci_jordan", "****");
if (!$connection) {
echo "<p> An error occured while trying to access the database, please notify the webmaster for a quick solution.</p><br>";
echo mysql_errno().": ".mysql_error()."<br>";
exit();
}
$query = "SELECT attachmentid from attachment";
$result = mysql_db_query("sampleci_samplecitynet", $query);
if ($result) {
$numOfRows = mysql_num_rows ($result);
echo "Found " . $numOfRows . " attachments..<Br>";
for ($i = 0; $i < $numOfRows; $i++){
$attachmentid[$i] = mysql_result ($result, $i, "attachmentid");
} // end for
} // end if
echo "Checking to see if posts have these and then generating a list of those that don't<br><Br>";
for ($i = 0; $i < count($attachmentid); $i++){
$query = "SELECT attachmentid, postid FROM post WHERE attachmentid = " . $attachmentid[$i];
$result = mysql_db_query("sampleci_samplecitynet", $query);
if ($result) {
// keepe the attachment
$numOfRows = mysql_num_rows ($result);
echo " Attachment id : " . $attachmentid[$i] . "<br>";
if ($numOfRows == 0) {
// delete the attachment here!
echo "Reject!<br>";
}
else {
// don't do anything at all!
echo "Keep!<br>";
}
} // end if
else {
// Delete the attachment!
echo "No result set!";
}
} // end for
?>
what do you think? Is my logic correct?
..jordan