php - 通过 PHP 从 MySQL 编辑数据

标签 php mysql

我在使用 PHP 脚本时遇到了一个令人沮丧的问题,该脚本应该允许我编辑 MySQL 数据库中的各个行。

这是显示数据库中所有行的文件;它就像它应该的那样工作。

<table cellpadding="10">
<tr>
<td>ID</td>
<td>First Name</td>
<td>Last Name</td>
<td>E-mail</td>
<td>Phone</td>
</tr>

<?php

$username="username here";
$password="password here";
$database="database name here";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM students";
$result=mysql_query($query);
mysql_close();

while ($row=mysql_fetch_array($result)){
echo ("<tr><td>$row[id]</td>");
echo ("<td>$row[first]</td>");
echo ("<td>$row[last]</td>");
echo ("<td>$row[email]</td>");
echo ("<td>$row[phone]</td>");
echo ("<td><a href=\"StudentEdit.php?id=$row[id]\">Edit</a></td></tr>");
}
echo "</table>";

?>

如您所见,每一行都有一个“编辑”链接,允许用户编辑个别学生的数据。然后,这里是 StudentEdit.php:

<?php

$username="username";
$password="password";
$database="database";

mysql_connect(localhost,$username,$password);

$student_id = $_GET[id]; 
$query = "SELECT * FROM students WHERE id = '$student_id'"; 
$result = mysql_query($query);
$row = mysql_fetch_array($result);
mysql_close();
?>

<form method="post" action="EditStudentData.php" />

<table>

<tr>
<td><input type="hidden" name="id" value="<? echo "$row[id]" ?>"></td>
</tr>

<tr>
<td>First Name:</td>
<td><input type="text" name="first" value="<? echo "$row[first]" ?>"></td>
</tr>

<tr>
<td>Last Name:</td>
<td><input type="text" name="last" value="<? echo "$row[last]" ?>"></td>
</tr>

<tr>
<td>Phone Number:</td>
<td><input type="text" name="phone" value="<? echo "$row[phone]" ?>"></td>
</tr>

<tr>
<td>E-mail:</td>
<td><input type="text" name="email" value="<?echo "$row[email]" ?>"></td>
</tr>

</table>

</form>

但是,当我执行此操作时,我收到以下错误消息:

警告:mysql_fetch_array():提供的参数不是第 12 行/home4/lukaspl1/public_html/StudentEdit.php 中的有效 MySQL 结果资源

有什么问题以及如何解决吗?

提前致谢!

最佳答案

从这里删除 mysql_close

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM students";
$result=mysql_query($query);
mysql_close();

代码应该是mysql_connect(localhost,$username,$password);

@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM students";
$result=mysql_query($query);

此外,您将仅使用基于键的结果集。只需使用 mysql_fetch_assoc。 另一个建议是用 $row['id'] 代替 $row[id]..

关于php - 通过 PHP 从 MySQL 编辑数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499287/

相关文章:

MySQL SUM 返回错误值

php - Mysql SELECT 和 UNION 具有相似名称的多个表

php - Mysql查询语法

php - HTML 代码之间的 PHP 代码中的条件语句

php - 验证或不验证 where 子句中的列

PHP数据库查询显示在html中

mysql - 将多个条目的值求和到一个字段中

php - 未设置问题 (PHP)

php - 第一个0消失了?

php - 我的链接使用 jquery 时效果不佳