2017-02-02 7 views
2

タイトルには、.phpファイルコード内の変数をインクリメントする際に問題があるようですが、データベースの値acc_pointsを1に変更します私は上記の変数でacc_pointsを1つ増やします。コードが行うことは、phpにajaxリクエストを送信し、mysqlデータベースのデータを更新してからjsにデータを返し、jsがデータを警告します。変数を1増やすと、PHPで変数値が1に変更されます

インクリメントによって、acc_pointsの値が5から1に変更されることもあります。問題がセッションと関係していたかどうかも考えました。私は関連情報を見回しましたが、解決策を見つけることができませんでした。この問題の本当の原因を知りたいですか?ありがとう!ここで

は、コードは次のとおりです。

の.phpファイル

<?php 

    require 'dbcon.php'; 

    session_start(); 

    $acc_points = $_SESSION["acc_points"]; 
    $acc_id = $_SESSION["acc_id"]; 

    if(isset($acc_points)) 
    { 
     $acc_points++; 
    } 

    $result = $con->prepare(" UPDATE `points` SET `acc_points` = ? WHERE `acc_id` = ? "); 
    $result->bind_param("ii", $acc_points, $acc_id); 
    $result->execute(); 

    if($acc_points != null) 
     { 
      $response = $acc_points; 
      echo $_GET['callback'] . '(' . json_encode($response) . ')'; 
     } 
     else 
     { 
      $response = "'Failed. Please try again.'"; 
      echo $_GET['callback'] . '(' . json_encode($response) . ')'; 
     } 
     //connection closed 
     mysqli_close ($con); 

    ?> 

JSが

$(document).ready(function() { 

    $("#qrtest").click(function() { 

     { 
      $.ajax({ 
        type: "GET", 
        url: "http://127.0.0.1/MP/appqrcode.php?callback=?", 
        dataType: 'JSONP', 
        async: false, 
        jsonp : "callback", 
        jsonpCallback: "jsonpcallback", 

        success: function jsonpcallback(response) 
        { 

         alert(response.acc_points); 

        } 
      }) 
     } 
    }); 
}); 

答えて

2

ファイル最初の問題はあなたが$ acc_pointsの値をチェックしているということです以下のコードが、nullかどうかにかかわらずクエリを実行しています

if(isset($acc_points)) 
{ 
    $acc_points++; 
} // if condition ends here. Insert command will always be executed. 

その後COMANDが実行された後、あなたはあなたがあなたのコードを再構築すべき値を再び

if($acc_points != null) /// insert has already happend. 
{ 
} 

をチェックし、より良いまだ、あなたがすべてで、このアプローチを必要としません。なぜじゃない?

$result = $con->prepare(" UPDATE `points` SET `acc_points` = acc_points+1 WHERE `acc_id` = ? "); 

これは、すでにデータベース内の値をインクリメントします。

+0

ああ!そうですか。どうもありがとう!それは私の事を明確にします。 –

関連する問題