@sunnyrio

При нажатии кнопки DELETE RECORD должно происходить удаление записи из базы данных, но этого не происходит. в чем причина?

Переписал пример из книжки О'reilly, в результате выполнения кода, при нажатии на кнопку DELETE RECORD должно происходить удаление записи из базы данных, но этого не происходит, в чем причина, где ошибка? Вот сам пример:
<?php // sqltest.php
require_once 'login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);

if (!$db_server) die("Невозможно подключиться к MySQL: " . mysql_error());

mysql_select_db($db_database, $db_server) or die("Невозможно выбрать базу данных: " . mysql_error());

             if (isset($_POST['author']) &&
	isset($_POST['title']) &&
	isset($_POST['category']) &&
	isset($_POST['year']) &&
	isset($_POST['isbn']))
            {
	$author = get_post('author');
	$title = get_post('title');
	$category = get_post('category');
	$year = get_post('year');
	$isbn = get_post('isbn');
            if (isset($_POST['delete']) && $isbn != "")
            {
	$query = "DELETE FROM classics WHERE isbn='$isbn'";

	if (!mysql_query($query, $db_server))
		echo "Сбой при удалении данных: $query<br />" . mysql_error() . "<br /><br />";
            }
            else
           {
	$query = "INSERT INTO classics VALUES" . "('$author', '$title', '$category', '$year', '$isbn')";

	if (!mysql_query($query, $db_server))
		echo "Сбой при вставке данных: $query<br />" . mysql_error() . "<br /><br />";
           }
           }

	echo <<<_END
	<form action="sqltest.php" method="post"><pre>
	Author <input type="text" name="author" />
	Title <input type="text" name="title" />
	Category <input type="text" name="category" />
	Year <input type="text" name="year" />
	ISBN <input type="text" name="isbn" />
	<input type="submit" value="ADD RECORD" />
	</pre></form>
_END;

	$query = "SELECT * FROM classics";
	$result = mysql_query($query);

	if (!$result) die ("Сбой при доступе к базе данных: " . mysql_error());
	$rows = mysql_num_rows($result);

	for ($j = 0 ; $j < $rows ; ++$j)
	{
		$row = mysql_fetch_row($result);
		echo <<<_END
<pre>
Author $row[0]
Title $row[1]
Category $row[2]
Year $row[3]
ISBN $row[4]
</pre>
		<form action="sqltest.php" method="post">
		<input type="text" name="delete" value="yes"/>
		<input type="text" name="isbn" value="$row[4]" />
		<input type="submit" value="DELETE RECORD" />
                                  </form>
_END;
		}

		mysql_close($db_server);

		function get_post($var)
		{
			return mysql_real_escape_string($_POST[$var]);
		}
?>


Весь код в документе sqltest.php: https://yadi.sk/d/mUHhmHXztvo2C
  • Вопрос задан
  • 794 просмотра
Решения вопроса 1
<form action="sqltest.php" method="post">
    <input type="text" name="delete" value="yes"/>
    <input type="text" name="isbn" value="$row[4]" />
    <input type="submit" value="DELETE RECORD" />

if (isset($_POST['author']) &&
isset($_POST['title']) &&-------------------------------------------не выполняется,в форме для удаления нет таких полей, нужно сначала delete проверять
isset($_POST['category']) &&
isset($_POST['year']) &&
isset($_POST['isbn']))
{
$author = get_post('author');
$title = get_post('title');
$category = get_post('category');
$year = get_post('year');
$isbn = get_post('isbn');
if (isset($_POST['delete']) && $isbn != "")
{
----------------
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы