更新数据时获取特定行
问题描述:
我试图做一个简单的CRUD(更新)系统。更新数据时获取特定行
我已经声明fetch
变量,但它表示它是未定义的。
当我修改上的特定行我希望看到在文本框中的旧数据之前,我修改数据,但它只能说明:
注意:未定义的变量:在取d:\的IDE \ XAMPP \ htdocs中\ EAM \ edit_data.php上线
说明:未定义变量:取在d:\的IDE \ XAMPP \ htdocs中\ EAM \上线edit_data.php
注意:未定义的变量:取在d:\的IDE \ XAMPP \ htdocs中\ EAM \ edit_data.php上线
这里是我的代码:
if ($first != '' && $first != ' ' && $last != '' && $last != ' '&& $email != "" && $email != " " && ctype_alpha(str_replace(' ',"", $first)) && ctype_alpha(str_replace(' ',"", $last)) && filter_var($email, FILTER_VALIDATE_EMAIL))
{
$mysql_query = "UPDATE register SET fname='$first', lname='$last', email='$email' WHERE id=".$_GET['id'];
$query3 = mysql_query($mysql_query);
if($query3)
{
header('location: view.php');
}
$id=$_GET['id'];
$query_results = mysql_query("SELECT id, fname, lname, email FROM register WHERE id='$id'") or die(mysql_error());
while($fetch = mysql_fetch_array($query_results))
{
}
}
}
?>
<form method="POST" action="">
<input type="hidden" name="id" value="<?php echo $fetch['id'];?>"/>
First name:
<br>
<input type="text" name="fname" style="width: 800px; height: 50px" value="<?php echo $fetch['first'];?>"/> <?php echo $fnameErr; ?>
<br>
Last name:
<br>
<input type="text" name="lname" style="width: 800px; height: 50px" value="<?php echo $fetch['last'];?>"/> <?php echo $lnameErr; ?>
<br>
Email:
<br>
<input type="text" name="email" style="width: 800px; height: 50px" value="<?php echo $fetch['email'];?>"/> <?php echo $emailErr; ?>
<br>
<input type="submit" name="submit" value="Modify"/>
</form>
<?php
}
?>
答
试试这个代码
$query_results = mysql_query("SELECT id, fname, lname, email FROM register WHERE id='$id'") or die(mysql_error());
$result_set=mysql_query($query_results);
$fetch=mysql_fetch_array($result_set);
删除一段时间在代码中循环,因为Query返回特定的记录。
1. **不要**使用**弃用和不安全**'mysql_ *'功能。从PHP 5.5(2013年)开始,它们已被弃用,并且在PHP 7中(2015年)完全删除。改用MySQLi或PDO。 2. **您可以[SQL注入](http://php.net/manual/en/security.database.sql-injection.php)**开放,并且确实应该使用[准备好的语句](http:/ /php.net/manual/en/mysqli.quickstart.prepared-statements.php)而不是连接你的查询,如果你使用上面提到的MySQLi或PDO,可以使用它们。 –
我已经在研究mysqli了......但是现在......因为mysql_ *是我第一个学到的东西....我要用mysql .. – Chikka
你的代码的整个结构是关闭的。无论你的if语句是否被验证,你只是查询数据库,但是你仍然试图在表单中使用数据库结果。 –