2017-05-08 4 views
-1

私はこの問題を2,3時間抱えていましたが、私が研究したことは私にも役に立たなかった。入力がデータベース内の名前と一致する場合にのみデータベースを更新しようとしています。このコードを修正するにはどうすればいいですか?If文の中でphpを使ってmysqlデータを正しく更新するには?

  //Input 
     <form> 
     <input type="text" class="form-control" aria-describedby="emailHelp" name="name_input" placeholder="Enter Name"> 
       </div> 

     <a href="" name="name_btn" class="btn btn-primary">Enter</a> 
     </div> 
     </form> 


    //The PHP code 

    $name = ""; 
    $name_input = ""; 
    $points = ""; 

    if(isset($_POST['name_btn'])){ 

     $name_input = strip_tags($_POST['name_input']); 
     $name = $user['name']; 
     $points = $user['points']; 

    if($name_input == $name) { 

     $points = points + 3; 

    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'"); 

    } 
    } 
+0

あなたは未定義のインデックス通知を取得する必要があります。 –

+0

と 'href'はPOST配列では動作しませんので、あなたのコードは複数のレベルで' $ user'の起点として失敗しています。 –

+0

@Fred -ii-データベースがページに正しく接続されていて、$ userを使用して他の値を取得できましたが、hrefを削除してもまだ動作しません。 – apaul

答えて

0

あなたもポストでは動作しないのをてhref、フォームにメソッドを追加する必要があり、このようにする必要があります:

//Input 
<form method="post"> 
    <input type="text" class="form-control" aria-describedby="emailHelp" name="name" placeholder="Enter Name"> 
    </div> 

    <!-- <a href="" name="name_btn" class="btn btn-primary">Enter</a> --> 

    <input type="submit" value="Submit" name="name_btn"> 
    </div> 
</form> 


//The PHP code 

<?php 

$databaseHost = 'localhost'; 
$databaseName = 'testing'; 
$databaseUsername = 'root'; 
$databasePassword = ''; 

$con = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName); 

$name = ""; 
$name_input = ""; 
$points = ""; 

if(isset($_POST['name_btn'])){ 

    echo "aaa"; 

    $name_input = strip_tags($_POST['name']); 
    $name = $user['name']; 
    $points = $user['points']; 


echo "&nbsp&nbsp Data updated successfully!"; 

    if($name_input == $name) { 

    $points = points + 3; 

    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'"); 

    } 
} 

?> 
0

結果が存在するかどうかは、選択クエリを使用して返された行の数を取得することでテストできます。例えば;

$query = "SELECT * FROM $table WHERE username = '$name_input'"; 
$result = mysqli_query($conn, $query); 
$count = mysqli_num_rows($result); 
if($count > 0){ 
    //the result exists 
    $points = points + 3; 
    $upate_data = mysqli_query($con, "UPDATE users SET points='$points' WHERE id='4'"); 
}else{ 
    //result does not exist 
} 

また、私は、フォームに入力フィールドのname属性がname_inputここ<input type="text" class="form-control" aria-describedby="emailHelp" name="name_input" placeholder="Enter Name">あなたがそれをチェックアウトする必要がありますです、まだここにname変数$name_input = strip_tags($_POST['name']);のポストデータを取得する参照してください。

関連する問題