我无法编辑字段并更新它。名称字段显示文本":
注意:未定义的变量:第 31 行的 D:''XAMPP''htdocs''test''test5.php
而不是值。可能做了一些愚蠢的代码错误,我是个天真的人。
<!DOCTYPE html>
<html>
<body>
<?php
define('DB_NAME', 'test');
define('DB_USER', '');
define("DB_PASSWORD", '');
define('DB_HOST', 'localhost');
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
$db_selected = mysql_select_db(DB_NAME, $link);
if(isset($_GET['del']))
{
$value1=$_GET['del'];
$rs = mysql_query("SELECT * from `add` where empid ='".$value1."'");
$row = mysql_fetch_array($rs);
}
?>
<form action="test7.php" method="post">
<ul>
<li>
Name:</br>
<input type="text" name="name" value="<?php echo $row[0]; ?>">
</li>
<li>
<input type="submit" value="UPDATE">
</li>
</ul>
</form>
</body>
</html>
您可以
检查,$row[0]
是否存在。如果$_GET
中没有del
参数,则$row
将不存在,因为您正在条件中创建$row
。
<input type="text" name="name" value="<?php echo (isset($row[0]) ? $row[0] : ''); ?>">
注意
请勿使用
mysql
函数。它们已弃用。请改用mysqli
或PDO
。通过从外部转义变量或使用预准备语句来避免 sql 注入。
你在表单中回显$row[0]而不声明它。您需要在 if 语句外部和回显语句之前初始化和声明$row。
更新了代码。
<?php
$row = "";
if(isset($_GET['del']))
{
$value1=$_GET['del'];
$rs = mysql_query("SELECT * from `add` where empid ='".$value1."'");
$row = mysql_fetch_array($rs);
}
?>
<form action="test7.php" method="get">
<ul>
<li>
Name:</br>
<input type="text" name="name" value="<?php echo $row[0]; ?>">
</li>
<li>
<input type="submit" value="UPDATE">
</li>
</ul>
</form>
必须先声明$row。如果在 if 中声明,则不能在外部使用它。同时将表单方法更改为 GET