我有一個頁面允許使用複選框進行多個記錄刪除,並且所有工作都正常。刪除與文件夾中記錄相關的圖像
然而,每條記錄可以有存儲在文件夾,這也將需要刪除它關聯的圖像,但我不知道如何實現這一目標,即使我已經搜查#1和谷歌。
如何刪除從MySQL數據庫與它從文件夾關聯的結果和圖像(S)?
我至今是:
是刪除記錄的代碼:
if (isset($_POST[ 'chk_id' ])) {
$arr = $_POST[ 'chk_id' ];
foreach ($arr as $id) {
@mysqli_query($KCC, "DELETE FROM pageContent WHERE contentID = " . $id);
}
$msg = "Page(s) Successfully Deleted!";
header("Location: delete-familyservices.php?msg=$msg");
}
是選擇記錄刪除形式:
<form name="deleteRecord" id="deleteRecord" method="post" action="delete-familyservices.php">
<?php if (isset($_GET['msg'])) { ?>
<p class="alert alert-success">
<?php echo $_GET['msg']; ?>
</p>
<?php } ?>
<table width="100%" class="table table-striped table-bordered table-responsive">
<tr>
<th>Page Title</th>
<th>Page Text</th>
<th>Page Image</th>
<th>Delete</th>
</tr>
<?php do { ?>
<tr>
<td width="30%" style="vertical-align: middle">
<h4 style="text-align: left">
<?php echo $row_rsContent['contentTitle']; ?>
</h4>
</td>
<td width="45%" style="vertical-align: middle">
<?php echo limit_words($row_rsContent['contentData'], 10); ?> ...</td>
<td align="center" style="vertical-align: middle">
<?php if (($row_rsContent['contentImage']) != null) { ?>
<img src="../images/<?php echo $row_rsContent['contentImage']; ?>" class="img-responsive">
<?php } else { ?> No Image
<?php } ?>
</td>
<td width="5%" align="center" style="vertical-align: middle"><input type="checkbox" name="chk_id" id="chk_id" class="checkbox" value="<?php echo $row_rsContent['contentID']; ?>">
</td>
</tr>
<?php } while ($row_rsContent = mysqli_fetch_assoc($rsContent)); ?>
</table>
<p> </p>
<div class="form-group" style="text-align: center">
<button type="submit" name="submit" id="submit" class="btn btn-success btn-lg butt">Delete Selected Page(s)</button>
<button class="btn btn-danger btn-lg butt" type="reset">Cancel Deletion(s)</button>
</div>
</form>
代碼的最後一塊,這是一個確認腳本:
<script type="text/javascript">
$(document).ready(function() {
$('#deleteRecord').submit(function (e) {
if (!confirm("Delete the Selected Page(s)?\nThis cannot be undone.")) {
e.preventDefault();
}
});
});
</script>
我見過提到unlink()
功能,但我不知道這是用什麼或有什麼想法,如何將其納入現有的代碼,如果它是。
您的代碼容易受到[** SQL注入攻擊**](https://en.wikipedia.org/wiki/SQL_injection)的影響。你應該使用[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)或[** PDO **](https://secure.php.net/ manual/en/pdo.prepared-statements.php)準備帶有綁定參數的語句,如[**這篇文章**]所述(https://stackoverflow.com/questions/60174/how-can-i-prevent-sql步噴射功能於PHP)。 –
[ID必須是唯一的(http://stackoverflow.com/questions/5611963/can-multiple-different-html-elements-have-the-same-id-if-theyre-different-eleme),特別是因爲它當您嘗試與這些元素進行交互時,會在[JavaScript](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id)和CSS中導致問題。 –
不要明白你的問題。你有文件 - 然後去刪除它!據我的回憶,PHP從一開始就實際上已經內置了文件系統軟件包,這意味着很長一段時間。 –