2017-04-17 7 views
0

私はシンプルなCRUD(UPDATE)システムを作成しようとしています。データを更新するときに特定の行を取得する

すでに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を使用してください。 ** [あなたは[SQL Injections](http://php.net/manual/en/security.database.sql-injection.php)**を広く読んでいます**そして、実際には[Prepared Statements](http: /php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用してください。これは上記のMySQLiまたはPDOを使用する場合に使用できます。 –

+0

私は既にmysqliについて勉強していますが、今は...... mysql_ *は私が学んだ最初のものです。私はmysqlを使うつもりです。 – Chikka

+0

コード全体の構造がオフです。あなたはif文が妥当であるかどうかだけをデータベースに照会しますが、依然としてフォームにデータベース結果を使用しようとしています。 –

答えて

0

このコードを試す

 $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は特定のレコードを返すため、コード内でループします。

関連する問題