Я возвращаю все строки в таблице с инструкцией while и PHP. строки указывают список элементов. Я хотел бы включить ссылки удаления рядом с каждым элементом, чтобы пользователи могли удалять записи. Я пытаюсь понять, как это сделать на PHP. Может кто-нибудь помочь мне написать сценарий .. Я использую процедурный .. не ООП. Я думаю, что ссылка выводит пользователей на страницу процесса и обратно, но я не буду знать о записях заранее, это все динамическое, и список всегда меняется.
заранее спасибо
Лучшая и экономичная практика – использование флажков. Google не использует их, пользователи не могут легко вводить вредоносный код и не обновлять страницу для каждого удаления:
Образец HTML:
while ($row = mysql_fetch_assoc($items)) { echo '<input name="delete['.$row['id'].']" type="checkbox">'; }
Образец обработки PHP:
$delete = $_POST['delete']; foreach($delete as $id = $value) { $id = mysql_real_escape_string($id); mysql_query("DELETE FROM table_name WHERE id = $id"); }
Что-то вроде этого должно хорошо работать
Определенно взгляните на комментарий Игнасио. Поскольку webspiders могут следить за ссылками … естественно, они ударят по ссылке удаления и уничтожу любые данные, которые у вас есть.
Я рекомендую сделать его крошечной формой с кнопкой отправки вместо ссылки.
Что-то вроде
echo "<form id='form_$id' method='post'>" .. <input type='hidden' name='id' value='$id' /> .. <input type='submit' name='submit_$id' value='delete' /> .. </form>";
Это довольно прямолинейно. Просто создайте URL-адрес с идентификатором строки, которую вы хотите удалить, в качестве параметра этого URL-адреса. Затем, когда эта ссылка будет нажата, получите идентификатор из строки запроса и выполните свою работу с базой данных.
Чтобы создать ссылку:
<?php // Do query here while ($row = mysql_fetch_assoc($resource_id)) { echo "<a href="delete.php?id={$row['id']}">Delete row</a>; } ?>
Для обработки запроса на удаление:
<?php $id = $_GET['id']; mysql_query("DELETE FROM table_name WHERE id = {$id}"); ?>
Естественно, вам нужно выполнить проверку данных и прочее, но это должно дать вам эту идею.
Не будет ли использование Javascript для удаления записи возможным способом предотвращения веб-пауков после ссылки?
Например, что-то вроде:
<a href="#" id="delete_link" rel="3">Delete</a> <script> $('#delete_link').click(function() { document.location.href = "delete.php?id=" + $(this).attr('rel'); }); </script>
Это должно быть хорошо, если веб-пауки не следуют ссылкам Javascript …