我在这里做错了什么。我无法弄清楚如何使更新块工作。当我点击“更新”按钮时,它会返回到edit.php但是带有
错误。错误是:注意:未定义的变量:POST in 第45行的C:\ xampp \ htdocs \ libSys \ edit.php
注意:未定义的变量:在C:\ xampp \ htdocs \ libSys \ edit.php中的POST 第46行
注意:未定义的变量:C:\ xampp \ htdocs \ libSys \ edit.php中的id 第48行
成功更新
第45,46,48行
echo $author = $POST['author']; //line 45
echo $isbn = $POST['isbn']; //line 46
$sql = "UPDATE booklist SET Author='$author', Title='title', ISBN = '$isbn' WHERE ID = '$id' "; //line 48
edit.php的完整代码如下:
<?php
include('databaseConnection.php');
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="./css/librarySystem.css">
<title> Edit Book Information </title>
</head>
<div>
<?php
if(isset($_REQUEST['edit'])) //FIRST IF
{
$id = $_REQUEST['edit'];
$sql_select = "SELECT * FROM booklist WHERE ID=$id";
$result=mysql_query($sql_select);
// collect all the data using mysql_fetch_array and assign to our $variables
while($row = mysql_fetch_array($result))
{
$id = $row['ID'];
$title = $row['Title'];
$author= $row['Author'];
$yearLevel = $row['YearLevel'];
$isbn = $row['ISBN'];
}
//displays form for user to edit book information
echo "<form method='POST' action='edit.php'>";
echo "Enter New or Correct Title: <input type='text' name='title' value='$title' > <br />";
echo "Enter New or Correct Author: <input type='text' name='author' value='$author'> <br />";
echo "Enter New or Correct ISBN: <input type='text' name='isbn' value='$isbn' > <br / >";
echo "<input type='submit' name='save' value='Update' > <br />";
echo "</form>";
} //END 1st IF
else if( isset($_POST['save'] ) )
{
echo $title = $_POST['title'];
echo $author = $POST['author'];
echo $isbn = $POST['isbn'];
$sql = "UPDATE booklist SET Author='$author', Title='title', ISBN = '$isbn' WHERE ID = '$id' ";
$result = mysql_query($sql);
if($result == true)
{
echo "Successfully Updated" ;
}
//header('Location: ./booklist.php');
}
?>
如何更正更新块?当我点击“更新”时,它似乎会转到if(isset($ _ POST ['save']),但不会真正更新该行。请帮忙。我卡住了。我不明白为什么“当我使用$ _POST ['author']分配变量时,会出现“未定义变量”错误...
我很感激任何帮助或解释。谢谢。
答案 0 :(得分:2)
将super global
变量用作$_POST[]
echo $author = $_POST['author'];
echo $isbn = $_POST['isbn'];
在更新到数据库之前使用mysql_real_escape_string
$author=mysql_real_escape_string($author),
$isbn=mysql_real_escape_string($isbn));
$sql = "UPDATE `booklist` SET Author='".$author."', Title='title', ISBN = '".$isbn."' WHERE ID = $id";
注意强>
不推荐使用 mysql
,而是使用mysqli OR PDO
答案 1 :(得分:0)
更改此行
echo $author = $POST['author'];
echo $isbn = $POST['isbn'];
到
echo $author = $_POST['author'];
echo $isbn = $_POST['isbn'];
答案 2 :(得分:0)
你有语法错误,你使用$ POST而不是$ _POST。
echo $author = $_POST['author']; //line 45
echo $isbn = $_POST['isbn']; //line 46
$sql = "UPDATE booklist SET Author='$author', Title='title', ISBN = '$isbn' WHERE ID = '$id' "; //line 48
答案 3 :(得分:0)
php POST全局变量的语法是$_POST
而不是$POST
。
我猜您只是使用$id
或$_GET
方法从表单中获取$_POST
。
所以也请查看这些语法。
答案 4 :(得分:0)
代码中有一些错误。首先,$ _POST是php中的超全局。 Superglobals以美元符号和下划线开头。你忘记了下划线,这就是它未定义的原因。 重写为:
echo $author = $_POST['author'];
echo $isbn = $_POST['isbn'];
其次,您在引号内使用$ id变量。将第48行改写为:
$sql = "UPDATE booklist SET Author='{$author}', Title='title', ISBN = '{$isbn}' WHERE ID = '{$id}' "; //line 48
要在没有连接的情况下在引号内使用变量,可以使用“{”括号。但请记住,您不能对常量值执行相同操作。希望这会有所帮助:)