У меня есть опыт программирования, но новичок в php. У меня есть проблема с примером, который я делал из этого урока. Я просмотрел его миллионы раз, искал в Google, ect ect. У меня нет идеи, почему мой код не работает.PHP Проблема с удалением из MySQL
Цель состоит в том, чтобы просто протестировать вставку и удаление в sql из php, используя кнопку «Добавить запись» и «Удалить запись». Кнопка «Добавить запись» работает отлично, но удаление не делает ничего, кроме перезагрузки страницы. Heres код ...
<?php // sqltest.php
require_once 'login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database, $db_server)
or die("Unable to select database: " . mysql_error());
if (isset($_POST['author']) &&
isset($_POST['title']) &&
isset($_POST['type']) &&
isset($_POST['year']) &&
isset($_POST['isbn']))
{
$author = get_post('author');
$title = get_post('title');
$type = get_post('type');
$year = get_post('year');
$isbn = get_post('isbn');
if (isset($_POST['delete']) && $isbn != "")
{
echo "worked!!!!!!!!!!!!!!";
$query = "DELETE FROM classics WHERE isbn='$isbn'";
$result = mysql_query($query) or die(mysql_error());
if(mysql_affected_rows($result) > 0) echo 'user deleted';
//if (!mysql_query($query, $db_server))
//echo "DELETE failed: $query" . mysql_error();
}
else
{
echo "nooooooooooooooooooo";
$query = "INSERT INTO classics VALUES" .
"('$author', '$title', '$type', '$year', '$isbn')";
if (!mysql_query($query, $db_server))
{
echo "INSERT failed: $query" . mysql_error();
}
}
}
echo <<<_END
<form action="sqltest.php" method="post"><pre>
Author <input type="text" name="author" />
Title <input type="text" name="title" />
Type <input type="text" name="type" />
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 ("Database access failed: " . 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]
Type $row[2]
Year $row[3]
ISBN $row[4]
<form action="sqltest.php" method="post">
<input type="hidden" name="delete" value="yes" />
<input type="hidden" name='isbn' value="$row[4]" />
<input type='submit' value='DELETE RECORD' />
</form>
</pre>
_END;
}
mysql_close($db_server);
function get_post($var)
{
return mysql_real_escape_string($_POST[$var]);
}
?>
Я просмотрел это много раз, до сих пор не знаю, почему это не сработает. Это цикл for, который делает эту кнопку неработоспособной? Заметьте, вы увидите, что эхо «сработало !!!»; а в другом - «noooooooo»; это было для меня, чтобы проверить, проверена ли кнопка, но ничего не печатает. Так, может, я пропустил что-то в самом коде кнопки? Кроме того, ошибки не печатаются, и мой редактор (и я) пропустил синтаксическую ошибку (если это так).
Код кнопки удаления находится в конце, прежде чем я закрыл БД.
Спасибо за вашу помощь заранее.
Сделайте 'var_dump()' on '$ _POST' и убедитесь, что вы получаете значения, которые вы ожидаете –
@JohnConde Эй это только что заметил. Извините, что вы здесь, но как я могу это сделать? Новое к этому = ( Благодарим вас за ввод! – TheNoob
нашел ответ на этот код: http://stackoverflow.com/questions/14077539/php-cant-add-content-text-book-example причина, по которой он не работает, заключается в том, что оператор if/else для удаления вложен внутри другого оператора if. , если вы его не знаете. –