Від автора: якщо довго не стосуватися певної теми, то вона поступово забувається. Ось я давно вже не займався видаленням записів в PHP. Сьогодні ми освіжимо ці знання, щоб бути напоготові.
Про що це я?
Звичайно, я говорю не про звичайних рядках, а тих, які записані в базу даних. Знову… Так, панове! На сцені знову його величність MySQL. З іншими СУБД наш улюблений мова програмування не співпрацює. Але ближче до реалізації!
Згадуємо, яка команда SQL відповідає за «стирання» рядків з БД:
DELETE FROM `city` WHERE `id`=2
На знімку видно, як працює ця команда в phpMyAdmin. Але це не зовсім те, що нам потрібно. Звідси ми можемо тільки «навчитися» правильно складений запит.
Програмним шляхом
Спробуємо реалізувати виконання команди DELETE в програмному коді. Для цього ми спочатку коннектимся до БД. Потім виконуємо запит за допомогою функції mysqli_query(). Після чого закриваємо з’єднання. Для цього використовуємо функцію mysqli_close().
Ось так ми реалізували видалення рядків з бази. Відкриваємо таблицю, бачимо, що у нас більше немає рядка id=3.
Можна додати перевірку виконання команди:
Але значення вказаного після where стовпця може бути неунікальним. Тому, щоб вибрати конкретну рядок, трохи модифікуємо запит:
DELETE FROM `city` WHERE `id`=10 and `Name`=’Tilburg’
Заходимо в таблицю і бачимо, що позбулися «десятої» запису.
Але точно була у таблиці рядок зі значеннями стовпців, зазначених у запиті? Будь ласка, ось доказ.
Складно!
Що стосується стирання рядків при закритті сторінки, то на думку спадає тільки такий «корявий» приклад:
window.onbeforeunload = function (){window.open(“chernovik.php”)};
Код скрипта (chernovik.php) у вас є. В основі прикладу лежить обробка події onbeforeunload. Воно настає після натискання на кнопку закриття вікна в браузері або при його відновленні.
Справа в тому, що ця подія обробляється кожним браузером по-своєму. До того ж майже всі з них блокує спливаючі вікна. Так що наводжу реалізацію «як є». Якщо у вас є варіанти поліпшення, ласкаво просимо в коментарі .