2017-10-04 1 views
0

データを更新するフォームを作成するために必要です。私は自分のフォームを作成し、私のPHPコーディングをしたが、エラーは表示されませんが、データは更新されません。レコードの更新中にエラーが発生する

投稿をクリックした後、エラーメッセージは表示されず、更新されていないときに自分のレコードが更新されたというメッセージが表示されます。

まだphpで新しい学生は誰かが私のコーディングを見て、私が逃したものを見て助けることができますか?事前に多くのことをありがとうございます。

私はあなたに与えることができる任意の助けに感謝します。私はこれまでにこのことを得ていましたが、まだレコードを更新することはできません。

>>>編集< < <

が、私はこの質問への解決策を発見した、私の答えは以下の通りです:

Page9.php:

<?php 
require('db.php'); 
include("auth.php"); 
$id=$_REQUEST['id']; 
$query = "SELECT * from new_record where id='".$id."'"; 
$result = mysqli_query($con, $query) or die (mysqli_error()); 
$row = mysqli_fetch_assoc($result); 
?> 


    <!DOCTYPE html> 
    <html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Update Record</title> 
    <link rel="stylesheet" href="css/style.css" /> 
    </head> 

     <body> 
     <div class="form"> 
      <p><a href="dashboard.php">Dashboard</a> 
      | <a href="insert.php">Insert New Record</a> 
      | <a href="logout.php">Logout</a></p> 
      <h1>Update Record</h1> 

      <?php 
      $status = ""; 
      if(isset($_POST['new']) && $_POST['new']==1) 
      { 
      $id=$_REQUEST['id']; 
      $trn_date = date("Y-m-d H:i:s"); 
      $name =$_REQUEST['name']; 
      $age =$_REQUEST['age']; 
      $submittedby = $_SESSION["username"]; 

      $update="update new_record set trn_date='".$trn_date."', name='".$name."', age='".$age."', submittedby='".$submittedby."' where id='".$id."'"; 

      mysqli_query($con, $update) or die(mysqli_error()); 

      $status = "Record Updated Successfully. </br></br> 
      <a href='view.php'>View Updated Record</a>"; 
      echo '<p style="color:#FF0000;">'.$status.'</p>'; 
      }else { 
      ?> 

      <div> 
       <form name="form" method="post" action=""> 

       <input type="hidden" name="new" value="1" /> 

       <input name="id" type="hidden" value="<?php echo $row['id'];?>" /> 

       <p><input type="text" name="name" placeholder="Enter Name" required value="<?php echo $row['name'];?>" /></p> 

       <p><input type="text" name="age" placeholder="Enter Age" required value="<?php echo $row['age'];?>" /></p> 

       <p><input name="submit" type="submit" value="Update" /></p> 

       </form> 

      <?php } ?> 
      </div> 
     </div> 
     </body> 
     </html> 

クレジット:http://www.allphptricks.com/simple-user-registration-login-script-in-php-and-mysqli/

私が信じた上記のリンクは、ちょうどphpを始めたいくつかの新しい学生に適しています。

+0

「error_reporting」をオンにします。問題の内容を教えてください。 http://php.net/manual/en/function.error-reporting.php – CodeGodie

+0

Mysqli_queryは混在した値を返します。そのため、クエリがうまく機能するかどうかをチェックするのは簡単です。 Mysqli_affected_rowsは整数を返しますので、影響を受ける行の数を確認するのは簡単です。 – UndoingTech

答えて

0

HTMLがPOSTメソッドを使用して送信しているため、POSTを使用してIDを取得する必要があります。

form action="page9.php" method="POST"

1

投稿したコードに基づいて、$_GETパラメータnoIDは設定されません。フォームのURL actionのURLに定義しないでください.GETパラメータとして渡す必要がある場所です。つまり、おそらくPOSTパラメータとして使用することを意図していました。いずれにせよ、それは設定されていません。

これは、SQLには... WHERE noID = ''が含まれていることを示しています。これはほとんどの場合一致しないため、何も更新されません。

また、あなたはSQL injectionに広く公開されています。クエリに変数を連結するのではなく、プリペアドステートメントを使用する必要があります。 How can I prevent SQL injection in PHP?を参照してください。

+0

よろしくお願いしますが、私のコーディングを改善するために何を提案しているのですか? – cuntspire

+0

これは非常に幅広い要求です。あなたはもっと具体的になりますか?最も重要なことは、SQLインジェクションの脆弱性を修正することです(上記のリンクを参照)。 –

関連する問題