Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Konrak777
5 / 5 / 3
Регистрация: 10.05.2012
Сообщений: 62
#1

Не удаляет из базы через форму - PHP БД

02.02.2016, 14:49. Просмотров 230. Ответов 3
Метки нет (Все метки)

Всем привет, начал разбираться с работой PHP+MySQL и нашел отличный пример на эту тему, но почему-то у меня он работает не полностью. Добавляет отлично, а вот удалять и изменять информацию не хочет, может кто определит в чем дело? Пример 2008 года, возможно он просто устарел и нужно заменить где-то синтаксис?

Статья. ссылка удалена
http://www.cyberforum.ru/php-database/thread1830336.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2016, 14:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не удаляет из базы через форму (PHP БД):

Посоветуйте инструментарий (Отбор данных из базы MySQL через web-форму)
Здравствуйте! Хочу попросить совета относительно направления раскопок. ...

не удаляет из базы данных(
Смотрел видео урок, у него прям так и написано и удаляет а у меня почему-то...

Не удаляет записи из базы данных
Подскажите пожалуйста, есть ли тут какая-то ошибка, потому что действий никаких...

Добавление данных через форму в таблицу базы данных MS SQL
Здравствуйте! Я делаю форму для добавления записи в таблицу базы данных,...

Не удаляет из базы данных, почему?
вот форма: <?php foreach($jokes as $joke): ?> <form...

3
Xenox
154 / 154 / 64
Регистрация: 28.06.2015
Сообщений: 563
02.02.2016, 17:15 #2
Ну вобще, как бы, нужно хотя бы свой код показать, а не ссылку на статью, желательно форму и сам скрипт с запросом, и указать какие ошибки выводит интерпритатор, если не выводит, вначале скрипт написать:
PHP
1
2
error_reporting(E_ALL);
ini_set('display_errors', 1);
0
Konrak777
5 / 5 / 3
Регистрация: 10.05.2012
Сообщений: 62
02.02.2016, 17:49  [ТС] #3
Вставил ваш код, получил такое "Notice: Undefined variable: del in Z:\home\localhost\www\book\del_data.php on line 20"

Форма, index.html

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
 
    <title>Форма с сохранением в MySQL</title>
 
<style type="text/css">
<!--
body { font: 12px Georgia; color: #666666; }
h3 { font-size: 16px; text-align: center; }
table { width: 400px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }
td { padding: 3px; }
input { width: 250px; border: solid 1px #CCCCCC; }
textarea { width: 250px; height: 100px; border: solid 1px #CCCCCC; }
.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }
-->
</style>
 
</head>
 
<body>
 
<h3>Пример формы с сохранением данных в MySQL</h3>
 
<form action="save_form.php" method="post" name="test_form">
<table border="1" cellpadding="0" cellspacing="0">
 <tr>
  <td colspan="2" align="center"><strong>Отправка запроса</strong></td>
 </tr>
 <tr>
  <td width="150">Имя :</td>
  <td><input type="text" name="test_name" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">E-Mail :</td>
  <td><input type="text" name="test_mail" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">Тема сообщения :</td>
  <td><input type="text" name="test_theme" maxlength="30" /></td>
 </tr>
 <tr>
  <td width="150">Сообщение :</td>
  <td><textarea name="test_mess"></textarea></td>
 </tr>
 <tr>
  <td colspan="2" align="center">
   <input type="submit" class="buttons" value="Отправить запрос" />
   <input type="reset" class="buttons" value="Очистить" />
  </td>
 </tr>
</table>
</form>
 
 
 
<form action="view_data.php" method="post" name="view_result">
<table>
 <tr>
  <td align="center"><input type="submit" class="buttons" value="Посмотреть ранее сохраненные данные" /></td>
 </tr>
</table>
</form>
 
<form action="del_data.php" method="post" name="delete_data">
<table>
 <tr>
  <td align="center"><input type="submit" class="buttons" value="Удаление данных" /></td>
 </tr>
</table>
</form>
 
<form action="update_data.php" method="post" name="update_data">
<table>
 <tr>
  <td align="center"><input type="submit" class="buttons" value="Редактирование и обновление данных" /></td>
 </tr>
</table>
</form>
 
</body>
</html>
Удалятор, del_data.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?
 
/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "test_base"; // название базы данных
 
/* Таблица MySQL, в которой хранятся данные */
$table = "test_table";
 
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
 
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
 
/* Если была нажата ссылка удаления, удаляем запись */
$del = $query = "delete from $table where (id='$del')";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
mysql_query($query) or die(mysql_error());
 
/* Заносим в переменную $res всю базу данных */
$query = "SELECT * FROM $table";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
/* Узнаем количество записей в базе данных */
$row = mysql_num_rows($res);
 
/* Выводим данные из таблицы */
echo ("
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
 
<head>
 
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />
 
    <title>Вывод и удаление данных из MySQL</title>
 
<style type=\"text/css\">
<!--
body { font: 12px Georgia; color: #666666; }
h3 { font-size: 16px; text-align: center; }
table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; }
td { padding: 3px; text-align: center; vertical-align: middle; }
.buttons { width: auto; border: double 1px #666666; background: #D6D6D6; }
-->
</style>
 
</head>
 
<body>
 
<h3>Вывод и удаление ранее сохраненных данных из таблицы MySQL</h3>
 
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
 <tr style=\"border: solid 1px #000\">
  <td><b>#</b></td>
  <td align=\"center\"><b>Дата обращения</b></td>
  <td align=\"center\"><b>Имена пользователей</b></td>
  <td align=\"center\"><b>E-Mail пользователей</b></td>
  <td align=\"center\"><b>Тема сообщения</b></td>
  <td align=\"center\"><b>Сообщения пользователей</b></td>
  <td align=\"center\"><b>Удаление</b></td>
 </tr>
");
 
/* Цикл вывода данных из базы конкретных полей */
while ($row = mysql_fetch_array($res)) {
    echo "<tr>\n";
    echo "<td>".$row['id']."</td>\n";
    echo "<td>".$row['data']."</td>\n";
    echo "<td>".$row['name']."</td>\n";
    echo "<td>".$row['email']."</td>\n";
    echo "<td>".$row['theme']."</td>\n";
    echo "<td>".$row['message']."</td>\n";
    /* Генерируем ссылку для удаления поля */
    echo "<td><a name=\"del\" href=\"del_data.php?del=".$row["id"]."\">Удалить</a></td>\n";
    echo "</tr>\n";
}
 
echo ("</table>\n");
 
/* Закрываем соединение */
mysql_close();
 
/* Выводим ссылку возврата */
echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>");
 
?>
0
Xenox
154 / 154 / 64
Регистрация: 28.06.2015
Сообщений: 563
03.02.2016, 16:32 #4
Лучший ответ Сообщение было отмечено Konrak777 как решение

Решение

Цитата Сообщение от Konrak777 Посмотреть сообщение
Notice: Undefined variable: del in Z:\home\localhost\www\book\del_data.php on line 20
Ну вот вам и ответ на ваш вопрос, у вас не определена переменная $del в строке 20
Я так понимаю это вот эта строка:
PHP
1
$del = $query = "delete from $table where (id='$del')";
А не определена она у вас потому что вы ее не передаете с формы, посмотрим на вашу форму удаления:
HTML5
1
2
3
4
5
6
7
<form action="del_data.php" method="post" name="delete_data">
<table>
 <tr>
  <td align="center"><input type="submit" class="buttons" value="Удаление данных" /></td>
 </tr>
</table>
</form>
Вот как скрипту определить какую именно запись удалять?
Значит вам нужно передать id записи в переменной $del
Например так:
HTML5
1
<input type="hidden" name="del" value="Здесть id записи которую нужно удалить">
Пример с вашим кодом
HTML5
1
2
3
4
5
6
7
8
<form action="del_data.php" method="post" name="delete_data">
<input type="hidden" name="del" value="1"> 
<table>
 <tr>
  <td align="center"><input type="submit" class="buttons" value="Удаление данных" /></td>
 </tr>
</table>
</form>
Добавлено через 2 минуты
С изменением ситуация та же

Добавлено через 3 минуты
А вобще так писать не нужно:
PHP
1
$del = $query = "delete from $table where (id='$del')";
По меньшей мере неправильно. Если вы передаете данные методом гет или пост то данные у вас будут храниться в массивах $_GET и $_POST соответственно их нужно принять примерно так:
PHP
1
2
$del = $_GET['del']; //Если переменная передается методом get
$del = $_POST['del']; // Если post соответственно
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2016, 16:32
Привет! Вот еще темы с решениями:

Программа на C# добавляет, но не редактирует и не удаляет данные из базы данных
Сделал в Visual Studio на С# программу предназначенную для записи,...

Как добавить запись в подчиненную форму через форму элемента?
Есть основная форма. На ней подчиненная табличная форма - список короче. ...

Построчное удаление в Memo удаляет через строку
Доброго времени, товарищи программисты и сисадмины! Сразу к делу:...

Создать программу, которая находит максимальное и удаляет его из файла. Оформить через меню
Создать программу, которая находит максимальное и удаляет его из файла....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru