Ошибка в генерации URL для удаления
<a href="delete.php?id=notesDelete=' . $row['id'] . '">
Тут ошибочное id=notesDelete=N. По коду delete.php должно быть delete.php?notesDelete=N
Но скорее всего хотелось сделать что-то типа
echo "<a href=delete.php?id=",$row['id'],"¬esDelete=1><button>delete</button></a>";
Тогда delete.php мог бы выглядеть так
if (!isset($_GET['id'])) die("Error: not found id parameter");
$id = intval($_GET['id']);
if ($id == 0) die("Error: wrong id parameter value");
if (isset($_GET['notesDelete'])) {
$dbc = mysqli_connect('localhost', 'root', '', 'notes') or die('Connect error...');
$query = "DELETE FROM note WHERE id = ".$id;
$result = mysqli_query($dbc, $query);
mysqli_close($dbc);
} else {
die("Error: no any action found");
}
Хотелось сделать важное замечание для начинающего. Ваш изначальный код не защищен от так называемых SQL инъекций. Вот пример кода
$id = intval("SELECT nothing"); var_dump($id);
$id = intval("1312; DELETE something"); var_dump($id);
$h = "DELETE FROM note WHERE id = '$id'";
var_dump($h);
$id = "10'; DROP DATABASE mysql; SELECT * FROM note WHERE id='1";
$h = "DELETE FROM note WHERE id = '$id'";
var_dump($h);
Выведет
int(0)
int(1312)
string(34) "DELETE FROM note WHERE id = '1312'"
string(80) "DELETE FROM note WHERE id = '10'; DROP DATABASE mysql; SELECT * from note id='1'"
То есть если злоумышленник подставит в URL текст с DROP DATABASE то сможет нарушить работу программы или получить какие-то секретные данные.
Я в коде продемонстрировал как можно от этого себя обезопасить, это принудительно привести тип входных данных к требуемому для работы, в данном случае к целому числу intval(). Таким образом все непонятное будет обрезано или пребразовано к 0. Для строковых выражений обязательно применять экранирование с помощью mysqli_real_escape_string().
Но более лучшей практикой в таком случае будут так называемые "подготовленные запросы SQL" о создании которых упомянул
alexalexes, но не пояснил почему так надо делать.