@Loligan

Не работает удаление строки из таблицы Mysql. В чем проблема?

<?

/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "loligan"; // название базы данных

$table = "auditoru";
/* Таблица MySQL, в которо
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());

/* Если была нажата ссылка удаления, удаляем запись */
$delete_ = $query = "DELETE FROM `auditoru` WHERE ID_audit='$delete_'";

/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
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>ID</b></td>
  <td align=\"center\"><b>Этаж</b></td>
  <td align=\"center\"><b>Площадь</b></td>
  <td align=\"center\"><b>Двери</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_audit']."</td>\n";
    echo "<td>".$row['Etash']."</td>\n";
    echo "<td>".$row['Plosthad']."</td>\n";
    echo "<td>".$row['Door']."</td>\n";
    echo "<td>".$row['Steni']."</td>\n";
    echo "<td>".$row['Other']."</td>\n";
    echo "<td><a name=\"del\" href=\"del.php?delete_=".$row["ID_audit"]."\">Удалить</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>");

?>
  • Вопрос задан
  • 1573 просмотра
Решения вопроса 2
Thelema
@Thelema
А где ты переменную $delete получаешь?
Это
$delete_ = $query = "DELETE FROM `auditoru` WHERE ID_audit='$delete_'";
Замени на это:
$delete = $GET["delete_"];
$query = "DELETE FROM `auditoru` WHERE ID_audit='$delete'";
Ответ написан
@slavabars
Веб программист
$delete_ = $query = "DELETE FROM `auditoru` WHERE ID_audit='$delete_'";

У меня 2 вопроса:
1. зачем у тебя в $delete_ присваивается строка запроса
2. как в запрос "DELETE FROM `auditoru` WHERE ID_audit='$delete_'"; проходит $delete_? Выше я не вижу что бы ты его присвоил. А приодит у тебя скорее всего get

После $delete_ = $query = "DELETE FROM `auditoru` WHERE ID_audit='$delete_'";
Напиши echo $query;
и увидишь какой запрос сформировался. Что то мне подскаывает что будет вот такой
DELETE FROM `auditoru` WHERE ID_audit=''
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
MetaDone
@MetaDone
Хорошо сформулированный вопрос - 50% решения
$delete_ = $query = "DELETE FROM `auditoru` WHERE ID_audit='$delete_'";

у вас $delete_ не определен. что вы удалять собрались?
mysql_query уже устарело давно, переходите на pdo
echo ("
"-//W3C//DTD XHTML 1.0 Transitional//EN\

за такой вывод html нужно бить по рукам
Ответ написан
Комментировать
SerafimArts
@SerafimArts
Senior Notepad Reader
На всякий случай добавлю:
1) Расширений mysql давно не поддерживается в php (удалено, используй mysqli или pdo)
2) Указание переменной $delete как в первом комментарии позволит пользователю выполнить любой sql код, достаточно просто заменить get `delete_=42` на `delete_=some; drop ...`.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы