Променете това
<a href='#'><span class='delete'>
до
<a href='deletepage.php?id=" . $row["ID"] . "'><span class='delete'>
след това на "deletepage.php", както и да наречете тази страница, направете нещо като
require_once('dbconnect.php');
$id = (int)$_GET['id'];
$sql = "DELETE FROM Predictions WHERE id=" . $id;
if($conn->query($sql) === TRUE) {
echo "Item deleted successfully";
} else {
echo "Error deleting record; ". $conn->error;
}
$conn->close();
Не знам какъв драйвер използвате тук, но предпочитаното решение би било използването на подготвен израз с параметризирана заявка.
Така че почти изпращате id
чрез GET
параметър към вашата "страница за изтриване". Тази страница приема тази стойност, прехвърля я към int
за да избегнете SQL инжекции (прочетете по-долу), и след това изтрива данните. Можете също да използвате header
вместо да повтаряте успех за да ги пренасочите към предишната страница. Можете да добавите GET
параметър към този url показва съобщение за успех. (или винаги можете да направите всичко това на една и съща страница и просто да проверите дали id
се изпраща).
Също така трябва да имате тази страница зад сигурна система за влизане. Не искате никой потребител/бот да може да изпълни този deletepage.php
.
Как мога да предотвратя SQL инжектирането в PHP?
http://php.net/manual/en /security.database.sql-injection.php
https://www.29">. /index.php/SQL_Injection_Prevention_Cheat_Sheet#Defense_Option_1:_Prepared_Statements_.28Parameterized_Queries.29
Предполагам, че използвате mysqli
така че разгледайте този документ за подготвени изявления с този драйвер, http ://php.net/manual/en/mysqli.quickstart.prepared-statements.php
.