Удаление строк базы данных в php и mysql

Мне нужно несколько советов о том, как динамически настраивать строки, которые я хочу удалить, поскольку в настоящее время мне приходится вручную изменять скрипт php для удаления строк, но я немного зациклен на том, куда идти дальше.

так вот мой индекс пунктов:

<!--?php
$result = mysqli_query($con,"SELECT * FROM items");

while($row = mysqli_fetch_array($result)) {
 echo $row['added'] . $row['content'] . $row['id'];

 echo "<br-->";

 echo "Mark as complete";

 echo "";

 echo "<a href="delete.php" target="_blank">Delete Item</a>";

 echo "";

 echo "<a href="update.php" target="_blank">Edit Item</a>"; 

 echo "";
 echo ""; 

}

mysqli_close($con);
?>

Если я нажму на элемент delete, он удалит только тот, который я указал в моем php здесь:

mysqli_query($con,"DELETE FROM items WHERE id='14'");

mysqli_close($con);

Теперь мне нужно знать, как сообщить кнопке удалить элемент, с которым связана ссылка, так как я могу вручную ввести 14, чтобы удалить его. Но мне нужна инструкция или советы о том, как удалить строку или идентификатор элемента этой строки в базе данных.

Мои первоначальные мысли: мне нужно передать некоторую информацию об этой строке, возможно, используя $ _GET?

3 ответа

Вам необходимо передать идентификатор элемента, который нужно удалить, в URL-адрес delete.php. Сначала добавьте ID в URL:

echo '<a href="delete.php?id='. $row['id'] .'" target="_blank">Delete Item</a>';

Затем в delete.php вам нужно использовать $_GET для получения paramater из URL-адреса и вставить его в запрос удаления:

$id =$_GET['id'];
$result = mysqli_query("DELETE FROM items WHERE id='$id'");

Тем не менее, вам нужно знать, что кто-то может тогда прийти, введите URL-адрес в формате "delete.php? Id =", и он удалит этот элемент. Вам следует:


Индекс позиций:

echo "<a href="delete.php?id=" .="" $row["="" id']="" "'="" target="_blank">Delete Item</a>";

Удалить файл:

$id = $con->real_escape_string($_GET['id']); // preventing sql injections
$con->query("DELETE FROM items WHERE id='$id'");


Безопасное решение:

$id = $con->real_escape_string($_GET['id']);
 $sth = $con->prepare("DELETE FROM items WHERE id=?");
 $sth->bindParam(1, $id);
 $sth->execute();

licensed under cc by-sa 3.0 with attribution.