2017-11-22 25 views
0

私はデータベースを更新する必要があります。問題は次のとおりです。私が更新したい "id"またはユーザーを読み込むことはできません。私が "id"にしたがってユーザを選ぶと、アプリケーションはそのユーザを見つけられず、ユーザも見つけられません。私はこの問題を解決することを知らない。ご協力ありがとうございます。 PHPコード:PHPを使用してSQLデータベーステーブルを更新するにはどうすればよいですか?

 <?php 
     $id_user=$_GET['id']; 

     $server_name="localhost"; 
     $db_user_name="root"; 
     $password="root"; 
     $db_name="prva"; 
     $connection=mysqli_connect($server_name, $db_user_name,$password,$db_name); 

     if($connection) { 
      echo 'Connected';} 

     if($_SERVER['REQUEST_METHOD'] == 'GET' && $_GET['edit_user_form']){ 
      $user_name = $_GET['user_name']; 
      $user_surname = $_GET['user_surname']; 

      if(preg_match('#^.{0,50}$#', $user_name) && 
       preg_match('#^.{1,50}$#', $user_surname)){ 

      $sql_query = "UPDATE users SET user_name="; 
      if($user_name){ 
      $sql_query .= "'".$user_name."',"; 
      }else{ 
      $sql_query .= "NULL,"; 
      } 

      $sql_query .= "user_surname='".$user_surname."'"; 


      $sql_query .= " WHERE id=".$id_user.";"; 

      $result = mysqli_query($connection, $sql_query); 


         if ($result) { 
          echo '<p class="success">Updated</p>'; 
          }else{ 
          echo '<p class="error">Error</p>'; 
          } 
          // echo "Error: " . $sql_query . "<br>" . mysqli_error($connection); 

       }else{ 

       echo '<p class="error">Wrong data </p>'; 
         } 
       } 

     if($id_user){ 
     $sql_query = "SELECT * FROM users WHERE id=".$id_user.";"; 

     $result = mysqli_query($connection, $sql_query); 

      if (mysqli_num_rows($result) > 0) {  
      $data = mysqli_fetch_assoc($result); 
      $user_name = $data[0]['user_name']; 
      $user_surname = $data[0]['user_surname'];?> 

形が見えます:

<form class="contact_form" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="get"> 
     <label for="user_name">Name</label> 
     <input type="text" name="user_name" id="user_name" value="<?php echo $user_name;?>"> 

     <label for="user_surname">Surname</label> 
     <input type="text" name="user_surname" id="user_surname" value="<?php echo $user_surname;?>"> 

     <input type="submit" name="edit_user_form" value="Update"> 
     <input type="hidden" name="id_user" value="<?php echo $id_user;?>"> 
    </form> 

とPHPコード(残り):

<?php 
    }else{ 
     echo '<p class="error">Data for editing are not loaded .</p>'; 
    } 

     }else{ 
     echo '<p class="error">Parameter of user is not loaded .</p>'; 
    }?> 
+0

あなたは既存のものを更新していない、新しいユーザーを追加しているようですね、それゆえノーがあります'id'。 – Forbs

+0

コードを追加するのを忘れました - $ sql_query = "UPDATE users SET user_name ="; 上記の - if($ user_name){sql_query。= "'"。$ user_name。 "、"; ....まだ動作しません。 –

+0

'$結果= mysqli_query($接続、$ sql_query); if(mysqli_query($ connection、$ sql_query)){'ここで2回クエリを実行していますが、理論的にはエラーとして '1'が返されます。 –

答えて

0

、それをHTMLであなたの隠されたフィールドのをチェックユーザーIDを入力する必要があります。

<input type="hidden" name="id" value="<?php echo $id_user;?>"> 
+0

私はそれを修正しようとしましたが、まだ動作していません。 –

0

間違ったパラメータを$_GETから取得しています。 入力の名前属性はid_userですが、あなたの名前はidです。

代わりにそれを行う:

$id_user = $_GET['id_user']; 

をあなたはまた、mysqli_real_escape_stringであなたの入力をサニタイズする必要があります

$id_user = mysqli_real_escape_string($connection, $_GET['id_user']); 
関連する問題