Php MYSQL行数据赢了';t在HTML表单字段中回显/显示
我任务的一部分是创建一个表单,通过HTML表单更新特定行数据。我已经成功地从mysql数据库中检索到了行数据,但是当我试图在html表单的字段中显示特定的行数据(StudentNumber、FirstName、LastName等)时,它只显示空字段。我可能错过了什么 以下是显示表单的php页面的编码:Php MYSQL行数据赢了';t在HTML表单字段中回显/显示,php,html,mysql,forms,Php,Html,Mysql,Forms,我任务的一部分是创建一个表单,通过HTML表单更新特定行数据。我已经成功地从mysql数据库中检索到了行数据,但是当我试图在html表单的字段中显示特定的行数据(StudentNumber、FirstName、LastName等)时,它只显示空字段。我可能错过了什么 以下是显示表单的php页面的编码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT
<!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=utf-8" />
<title>updating data record</title>
</head>
<body>
<?php
//connect to the database
$conn = mysql_connect('localhost', 'root', '');
if (!$conn) {
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db('ccm3413', $conn);
mysql_set_charset("utf8",$conn);
$id = $_GET['id'];
$result = mysql_query("SELECT * FROM studentinfo WHERE recordID = '$id'");
while ($row = mysql_fetch_assoc($result)) {
}
?>
<form id="form1" name="form1" method="post" action="processUpdateRecord.php">
<p>
<label>Student Number:
<input name="StudentNumber" type="text" id="StudentNumber" size="10" value="<?php echo $row['StudentNumber']; ?>"/>
</label>
</p>
<p>
<label>First Name:
<input name="FirstName" type="text" id="FirstName" size="20" value="<?php echo $row['FirstName']; ?>"/>
</label>
</p>
<p>
<label>Last Name:
<input name="LastName" type="text" id="LastName" size="20" value="<?php echo $row['LastName']; ?>"/>
</label>
</p>
<p>
<label>Email Address:
<input name="EmailAddr" type="text" id="EmailAddr" size="50" value="<?php echo $row['EmailAddr']; ?>"/>
</label>
</p>
<p>
<label>Telephone:
<input name="PhoneNumber" type="text" id="PhoneNumber" size="20" value="<?php echo $row['PhoneNumber']; ?>"/>
</label>
</p>
<p>
<input type="submit" name="Update" id="Update" value="Update" />
</p>
</form>
</body>
</html>
更新数据记录
请尝试以下代码:
<!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=utf-8" />
<title>updating data record</title>
</head>
<body>
<?php
//connect to the database
$conn = mysql_connect('localhost', 'root', '');
if (!$conn) {
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db('ccm3413', $conn);
mysql_set_charset("utf8",$conn);
$id = mysql_real_escape_string($_GET['id']);
$result = mysql_query("SELECT * FROM studentinfo WHERE recordID = '$id'");
$student = (mysql_num_rows($result)==1) ? mysql_fetch_assoc($result) : null ; //You expect only 1 student, right?
if (is_array($student)){
?>
<form id="form1" name="form1" method="post" action="processUpdateRecord.php">
<p>
<label>Student Number:
<input name="StudentNumber" type="text" id="StudentNumber" size="10" value="<?php echo $student['StudentNumber']; ?>"/>
</label>
</p>
<p>
<label>First Name:
<input name="FirstName" type="text" id="FirstName" size="20" value="<?php echo $student['FirstName']; ?>"/>
</label>
</p>
<p>
<label>Last Name:
<input name="LastName" type="text" id="LastName" size="20" value="<?php echo $student['LastName']; ?>"/>
</label>
</p>
<p>
<label>Email Address:
<input name="EmailAddr" type="text" id="EmailAddr" size="50" value="<?php echo $student['EmailAddr']; ?>"/>
</label>
</p>
<p>
<label>Telephone:
<input name="PhoneNumber" type="text" id="PhoneNumber" size="20" value="<?php echo $student['PhoneNumber']; ?>"/>
</label>
</p>
<p>
<input type="submit" name="Update" id="Update" value="Update" />
</p>
</form>
<?php
else {
echo "The student has not been found" ;
} ?>
</body>
</html>
更新数据记录
您需要将表单放在while括号内。您应该使用MySQLi或PDO,因为PHP中的MySQL函数已被弃用。$row
是循环的一个局部变量,并且在表单中使用它时为空。您希望从db获得多少记录?@Ethan,尽管非常正确,一个新用户总是在这件事上纠缠不休,这让人有点恼火。好吧,我使用了Jari的代码,但我把else语句移到了php的顶部块,因为我认为它放错了位置,它工作得很好,很抱歉为此创建了一个新帐户。这很有效,但在我将底部的“else”移到了php的顶部块之后。非常感谢。你能告诉我你是怎么做到的吗。。。比如将“else”从底部移动到顶部php块?