|
|
|
| Всем привет
Народ подскажите где можно посмотреть на реализацию удаление даных с базы. Задумка простая дать возможность пользователю в поле ввода input ввести значение, номер записи и при нажатии кнопки удалить его с базы с подтверждением удаления.
=========
Спасибо
Код не привожу, поскольку кроме пустой формы у меня ничего нет
P.S. сильно не пинайте | |
|
|
|
|
|
|
|
для: gghh
(15.06.2010 в 15:51)
| | удаление строк из таблицы БД выполняется SQL-оператором DELETE.
DELETE FROM таблица WHERE условие.
Так что если Вы умеете выводить данные из таблицы, то удалить их сможете всяко. | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2010 в 15:54)
| | Да спасибо вывести данные через массив я смогу. Вот смотрите есть форма:
<form action="drop.php" method=POST>
Введите значение<input type="text" name="id" >
<input type="submit">
</form>
|
а далее я в полном ступоре. Не знаю как закодировать drop.php. Конечно я знаю про delete from table wher id=$id но у меня ничего не выходит.
Народ поделитесь простым примером. | |
|
|
|
|
|
|
|
для: gghh
(15.06.2010 в 16:09)
| |
<?php
//Защита от SQL-инъекции
$_POST['id'] = intval($_POST['id']);
//Соединяемся с MySQL сервером и выбираем БД
$dbcn = mysql_connect($host, $user, $password);
if(!$dbcn) exit("<p>Ошибка соединения с БД</p>");
if (!mysql_select_db($dbname, $dbcn) ) exit("<p>Ошибка соединения с БД</p>");
//Формируем запрос на удаление записи из базы
$query = "DELETE FROM имя_таблицы WHERE id = $_POST[id] LIMIT 1";
//Удаляем запись из базы
if(!mysql_query($query)) exit("<p>Ошибка удаления записи из базы</p>");
//Потом можно переадресовать пользователя
header("Location: index.php");
?>
|
| |
|
|
|
|
|
|
|
для: Ирбис
(15.06.2010 в 16:19)
| | не выдаёт ли ошибки синтаксиса?
$_POST['id'] = intval($_POST['id']);
|
может лучше переменная чем сг. массив? | |
|
|
|
|
|
|
|
для: oliss
(15.06.2010 в 16:22)
| | >не выдаёт ли ошибки синтаксиса?
Ошибку не выдает. Мы интерполируем элемент ассоциативного массива по всем правилам - начало и конец строки обозначаются двойными кавычками, элемент массива в квадратных скобрах указан без кавычек. С СУБД тоже проблем быть не должно - предполагается, что поле id в таблице числовое, поэтому значение поля в кавычки брать не нужно.
>может лучше переменная чем сг. массив?
Это уже на вкус и цвет. Мне удобнее так
$_POST['id'] = intval($_POST['id']);
|
| |
|
|
|
|
|
|
|
для: Ирбис
(15.06.2010 в 16:19)
| | защиту от SQL-инъекции имеет смысл делать непосредственно рядом с текстом SQL-запроса, а не где-то сверху.
В идеале - в том же выражении, что и сам SQL-текст .
Иначе очень легко столкнуться с ситуацией, когда между точкой защиты и точкой формирования SQL-текста, Вы сами (или другой разработчик) случайно поменяете значение "горячей" переменной, и защита окажется скомпрометированной. | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2010 в 16:38)
| | Спасибо за совет. В будущем будем поступать именно так. | |
|
|
|
|
|
|
|
для: Ирбис
(15.06.2010 в 16:19)
| | Все сделал как Вы написали. Да спасибо за пример. Ничего не работает. Это какая-то фигня. Что делать, в чем может быть проблема? Почему-то ошибка об удаление не выводит. Я в смятение. | |
|
|
|
|
|
|
|
для: gghh
(15.06.2010 в 16:42)
| | запрос оставили в таком же виде?
"DELETE FROM имя_таблицы WHERE id = $_POST[id] LIMIT 1"
?? )) | |
|
|
|
|
|
|
|
для: psychomc
(15.06.2010 в 16:49)
| | Все работает, спасибо. Просто немного ошибся, иду учить матчасть.
============
Еще раз спасибо за ответы. | |
|
|
|