0

ユーザーが特定のアクションを通じて経験値を獲得し、十分な量になるとレベルアップするレベルシステムを作成しようとしています! この levelsystem.php ファイルを作成し、header.php に含めたので、すべてのページに表示されますが、機能していないようです。

 <?php
$res = mysql_query("SELECT `level`, `exppoints` FROM `users` WHERE `id` = '".$_SESSION['uid']."'");
$data = mysql_fetch_assoc($res);

$level = $data['level'];
$exp = $data['exppoints'];
$expneed = 100;
$levelup = $level * $expneed;

if($exp == $levelup) {
$res2 = mysql_query("UPDATE `users` SET `level` = level+1, `exppoints` = exppoints-'".$levelup."' WHERE `id` = '"$_SESSION['uid']."'");
}
?>

クエリの $levelup であると想定している予期しない変数のエラーが表示されますが、それを回避する方法はわかりません。

4

2 に答える 2

0

whereステートメントにドット連結演算子がありません:

... ."' WHERE `id` = '"$_SESSION['uid']."'"

次のようにする必要があります。

... ."' WHERE `id` = '".$_SESSION['uid']."'"

演算子の前後にスペースを追加すると、コードの読みやすさが向上する場合があります。

また、これらのmysql_*関数は PHP v5.5 で非推奨になりました。代わりにMySQLiまたはPDOを使用してみてください。

于 2013-09-09T19:59:32.107 に答える
0

生理が遅れているようです

この $res2 = mysql_query("UPDATEユーザーSETレベル= level+1,は ID を説明= exppoints-'".$levelup."' WHEREします= '"$_SESSION['uid']."'");

$res2 = mysql_query("UPDATE usersSET level= level+1, exppoints= exppoints-'".$levelup."' WHERE id= '".$_SESSION['uid']."'");

于 2013-09-09T20:03:02.030 に答える