私がやろうとしているのは、ユーザーが「削除」ボタンをクリックすると、サーバーからファイルが削除され、同じファイル名が保存されているデータベース行が削除されることです。これで、ファイルはサーバーから正常に削除されます。問題ではありません。
問題は、同じファイル名が保存されているデータベース行を削除していないことです。どうすればこれを達成できますか?
以下は、deleteimage.php に移動する削除ボタンの JavaScript 関数です。
var counter = 0;
function stopImageUpload(success, imagefilename){
counter++;
$('.listImage').eq(window.lastUploadImageIndex).append('<div>' + htmlEncode(imagefilename) + '<button type="button" class="deletefileimage" image_file_name="' + imagefilename + '">Remove</button><br/><hr/></div>');
var _counter = counter;
$('.listImage').eq(window.lastUploadImageIndex).find(".deletefileimage").on("click", function(event) {
var image_file_name = $(this).attr('image_file_name');
jQuery.ajax("deleteimage.php?imagefilename=" + image_file_name)
.done(function(data) {
$(".imagemsg" + _counter).html(data);
});
$(this).parent().remove();
});
return true;
}
以下はdeleteimage.phpです:
<?php
$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect('localhost',$username,$password);
mysql_select_db($database) or die( "Unable to select database");
$image_file_name = $_GET["imagefilename"];
echo "$image_file_name was Deleted";
unlink("ImageFiles/$image_file_name");
$imagedeletesql = "DELETE FROM Image (ImageFile)
WHERE ('ImageFile = ImageFiles/". mysql_real_escape_string($image_file_name)."')";
mysql_query($imagedeletesql);
mysql_close();
?>