Я пытаюсь позволить пользователю проверить, какой элемент нужно удалить. Когда пользователь выберет один или несколько элементов и нажмите кнопку «Удалить», эти данные будут удалены из базы данных. Я также добавил окно поиска для поиска dvd. Поле поиска работает, но удаление не выполняется. Это выглядит так, как в браузере.
Мой PHP выглядит так (я вынул код поиска):
<form action="" method="post"> <p><input type="text" name="search"> <input type="submit" value="Search"></p> <p><input type="submit" name="deleting" value="Delete"></p> </form> <?php $link = mysqli_connect( $host, $user, $password, $dbname); if (!$link) { die('Could not connect: ' . mysqli_connect_error()); } echo 'Connected successfully<br/>'; //searching code goes here if (isset ($_POST['deleting']) && isset ($_POST['deleteThese']) ) { $deleteThese = implode(",", $_POST['deleteThese']); $queryTwo = "DELETE FROM `$dbname`.`dvds` WHERE `dvds`.`DvdID` IN ($deleteThese)"; $resultTwo = mysqli_query($link, $queryTwo); } echo "<table border=\"1\"><tr><th>DvdTitle</th><th>RunningTime</th><th>Delete</th></tr>"; if (mysqli_num_rows($result) == 0) echo "<tr><td colspan='2'>No records found.</td></tr>"; else { while ($row = mysqli_fetch_assoc($result)) { echo "<tr><td>" . $row['DvdTitle'] . "</td>"; echo "<td>" . $row['RunningTime'] . "</td>"; echo "<td>" . "<form>" . "<input type='checkbox' name='deleteThese[]' value='" . $row['DvdID'] . "' >" . "</form>" . "</td></tr>\n"; } } echo "</table>"; mysqli_free_result($result); mysqli_close($link); ?>
Каждый DvdTitle имеет уникальный идентификатор Dvd, поэтому значение каждой строки – это идентификатор $row['DvdID']
dvd $row['DvdID']
.
Добавление скобок позволит выбрать эти идентификаторы для удаления.
IN($deleteThese)
РЕДАКТИРОВАТЬ
Не закрывайте форму после кнопки отправки. Поместите это в конец кода. Это позволит включить форму.
<form action="" method="post"> <p><input type="text" name="search"> <input type="submit" value="Search"></p> <!-- YOUR PHP CODE --> <p><input type="submit" name="deleting" value="Delete"></p> </form>
2nd Edit [требуется улучшить код]
Переместите isset поверх формы.
<?php if (isset ($_POST['deleting']) && isset ($_POST['deleteThese']) ) { $deleteThese = implode(",", $_POST['deleteThese']); $queryTwo = "DELETE FROM `$dbname`.`dvds` WHERE `dvds`.`DvdID` IN ($deleteThese)"; $resultTwo = mysqli_query($link, $queryTwo); } ?> <form>....
$deletethese
возможно, должны быть кавычки вокруг него.