更新数据时获取特定行

问题描述:

我试图做一个简单的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'];?>"/>&nbsp;<?php echo $fnameErr; ?> 
      <br> 
      Last name: 
      <br> 
      <input type="text" name="lname" style="width: 800px; height: 50px" value="<?php echo $fetch['last'];?>"/>&nbsp;<?php echo $lnameErr; ?> 
      <br> 
      Email: 
      <br> 
      <input type="text" name="email" style="width: 800px; height: 50px" value="<?php echo $fetch['email'];?>"/>&nbsp;<?php echo $emailErr; ?> 
      <br> 
      <input type="submit" name="submit" value="Modify"/> 
     </form> 
    <?php 
} 
?> 
+5

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,可以使用它们。 –

+0

我已经在研究mysqli了......但是现在......因为mysql_ *是我第一个学到的东西....我要用mysql .. – Chikka

+0

你的代码的整个结构是关闭的。无论你的if语句是否被验证,你只是查询数据库,但是你仍然试图在表单中使用数据库结果。 –

试试这个代码

 $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返回特定的记录。