У меня есть это удаление sql, но я не могу понять, почему это не работает: /
После попытки удалить отмеченную строку if ($ result) действительно перезагружает страницу, но строка все еще там …: /
Может кто-нибудь, пожалуйста, помогите мне?
Что мне не хватает?
<form name="delete_posts" method="post" action="">
<table class="all_posts">
<tr>
<td class="checkbox"><input type="checkbox" name="select_all" id="select_all" /></td>
<td class="post_title">Title</td>
<td>Auther</td>
<td>Posted</td>
<td>Updated</td>
<td>Category</td>
</tr>
<tr><td class="delete_posts" colspan="6"><input name="delete" type="submit"id="delete" value="delete"></td></tr>
<?php
$post_set = get_all_posts();
while ($row = mysqli_fetch_array($post_set)){
echo "<tr>
<td><input name=\"checkbox[]\" type=\"checkbox\" id=\"checkbox[]\" value=".$row['id']."></td>
<td><a href=\"edit_post.php?edit=".$row['id']."\">" .$row['title']. "</td>
<td>Auther</td>
<td>".date("d. M. 'y", strtotime($row["date"]))."</td>
<td>Update Date</td>
<td>".str_replace("_"," ",$row['category'])."</td>
</tr>";}// Delete Posts
if(isset($_POST['delete'])){
$checkbox = $_POST['delete'];
$count = count($checkbox);
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM posts WHERE id = $del_id ";
$result = mysqli_query($connection, $sql);
}
// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=posts.php\">";
}
}
?>
</table>
</form>
Спасибо за помощь
ура
Крис
Я думаю, что у вас есть ошибка в вашем коде, когда вы извлекаете проверенную строку: вместо получения значений флажка ($checkbox = $_POST['checkbox'];
) вы получаете значение удаления ($checkbox = $_POST['delete'];
).
Вот исправленная часть:
if(isset($_POST['delete'])){
$checkbox = $_POST['checkbox'];
$count = count($checkbox);
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM posts WHERE id = $del_id ";
$result = mysqli_query($connection, $sql);
}
Других решений пока нет …