Лучший способ удалить строки mysql из html-страницы – удалить ссылку и php

Я возвращаю все строки в таблице с инструкцией 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 …