-1

jQueryを使用して2つの変数を投稿しています。次に、外部の php ファイルをロードして、これら 2 つの変数をデータベースに配置します。何らかの理由でクエリが機能しません。普通にやってみると。できます。

jQuery コード

    $.post("/include/getResult.php", { 
finalscore:score, finalcredits:credit },
 function(data){

console.log("Data: " + data);

});

PHP コード

session_start();
$finalscore = $_POST['finalscore'];
$finalcredits = $_POST['finalcredits'];
$query = mysqli_query($con, "SELECT score,credits FROM gebruikers WHERE leerlingennummer = '".$_SESSION['leerlingennummer']."'");
if(mysqli_num_rows($query) == 1)
{
    $row = mysqli_fetch_array($query);
    //get the current score and credits
    $score = $row['score'];
    $credits = $row['credits'];
    $score = 'succes';
}
echo $score;

奇妙な理由で、クエリはこのようには機能しません。

4

3 に答える 3

0

PHP コード

session_start();
$finalscore = $_POST['finalscore'];
$finalcredits = $_POST['finalcredits'];
$query = mysqli_query($con, "SELECT score,credits FROM gebruikers WHERE leerlingennummer = '".$_SESSION['leerlingennummer']."'");
if(mysqli_num_rows($query) == 1)
{
    $row = mysqli_fetch_array($query);
    //get the current score and credits
    $score = $row['score'];
    $credits = $row['credits'];
    $score = 'succes';
}
echo $score;

AJAX

$("YourSubmitButtonId").click(function(event){

    event.preventDefault();

     var Formdata = $("YourFormId").serialize(); 

        $.ajax({

        type:"POST";
        url:"/include/getResult.php",
        data:Formdata,
        success:function(response){

        $("reponceId").html(response);

        };




    });
});
于 2013-04-27T13:24:21.977 に答える
0

うまくいきそうです。ただし、いくつかのコードを追加/変更する必要があります。

  1. SQLインジェクションを防ぐために

    $query = mysqli_query($con, "SELECT score,credits FROM gebruikers WHERE leerlingennummer = '".$_SESSION['leerlingennummer']."'");
    

    する必要があります

    $query = mysqli_query($con, "SELECT score,credits FROM gebruikers WHERE leerlingennummer = '".addslashes($_SESSION['leerlingennummer'])."'");
    
    • $_SESSION['leerlingennummer'] は空白にすることができます。コードを確認します。
  2. 更新クエリを追加

    if(mysqli_num_rows($query) == 1)
    {
        $row = mysqli_fetch_array($query);
        //get the current score and credits
        $score = $row['score'];
        $credits = $row['credits'];
        $score = 'succes';
        mysqli_query($con, "update gebruikers set `score` = '".addslashes($_POST['finalscore'])."', `credits` = '".addslashes($_POST['finalcredits'])."' where leerlingennummer = '".addslashes($_SESSION['leerlingennummer'])."'");
    }
    

このコードは、mysql のスコアを「finalscore」に変更し、mysql のクレジットを「finalcredits」に変更します。それより、ajaxアラートは「成功」になります。更新前のスコアにしたい場合は、次のようにすることができます。

if(mysqli_num_rows($query) == 1)
{
    $row = mysqli_fetch_array($query);
    //get the current score and credits
    $score = $row['score'];
    $credits = $row['credits'];
    mysqli_query($con, "update gebruikers set `score` = '".addslashes($_POST['finalscore'])."', `credits` = '".addslashes($_POST['finalcredits'])."' where leerlingennummer = '".addslashes($_SESSION['leerlingennummer'])."'");
}
于 2013-04-27T13:28:32.040 に答える