0

入力/フォームの後にもう1ポイント獲得してほしいポイントシステムを取得しました。今まで私はこのコードを使用しています:

<?php
session_start();
//=============Configuring Server and Database=======
$host        =    'localhost';
$user        =    'root';
$password    =    '';
//=============Data Base Information=================
$database    =    'login';

$conn        =    mysql_connect($host,$user,$password) or die('Server Information is not Correct'); //Establish Connection with Server
mysql_select_db($database,$conn) or die('Database Information is not correct');

//===============End Server Configuration============

//=============Starting Registration Script==========


$username    =    mysql_real_escape_string($_POST['txtusername']);

//=============To Encrypt Password===================

//============New Variable of Password is Now with an Encrypted Value========

if(isset($_POST['btnRegister'])) //===When I will Set the Button to 1 or Press Button to register
{
$query = mysql_query("SELECT * FROM quiz WHERE username='$username'");
if(mysql_num_rows($query) > 5 ){
echo "Sorry but you can only take a quize once:S";

}else{

$insert = "UPDATE `users` SET `points` = '".$points."' +1 WHERE `username` = '".$username."'";

 mysql_query($insert); 



mysql_query ("insert into quiz(username)values('$username')");
header('location: succes.php');
}
}
?>

しかし、このコードは1を更新/追加していないようですが、番号を1に置き換えます。したがって、5があり、このコードを実行すると1に置き換えられ、1と表示されます。追加/更新するにはどうすればよいですか。したがって、3つのポイントがあり、コードを実行すると、repacecを取得することで4つのポイントが得られます。

$insert = "UPDATE `users` SET `points` = '".$points."' +1 WHERE `username` = '".$username."'";
4

3 に答える 3

1

変数を使用する必要はありません$points。次のUPDATEクエリを使用します。

$insert = "UPDATE `users` SET `points` = (`points` + 1) WHERE `username` = '".$username."'";

上記のクエリは脆弱であることに注意してSQL Injectionください。それから保護するために、以下の記事をお読みください。

于 2012-12-12T14:12:38.837 に答える
0

どこで定義するかわかりません$pointsが、1ずつインクリメントするだけの場合

どうですか

$insert = "UPDATE `users` SET `points` = `points`+1 WHERE `username` = '".$username."'";

そうすれば、変数の初期点を取得する必要はありません

于 2012-12-12T14:14:07.077 に答える
0

私の唯一の推測は、$pointsが設定されていないということです。エコー$ポイントを実行できますか。クエリの直前?

于 2012-12-12T14:13:37.123 に答える