我正在尝试创建一个关卡系统,用户通过某些操作获得exp,当他们有足够的时候,他们会升级! 我已经创建了这个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,但看不到它的方法。
答案 0 :(得分:0)
您在where语句中缺少点连接运算符:
... ."' WHERE `id` = '"$_SESSION['uid']."'"
应该是:
... ."' WHERE `id` = '".$_SESSION['uid']."'"
在运算符周围添加一些空格可能有助于提高代码的可读性。
答案 1 :(得分:0)
看起来你错过了一段时间
此
$res2 = mysql_query("UPDATE
{用户{1}} {级{1}} {exppoints {1}} ID为SET
$ res2 = mysql_query(“UPDATE = level+1,
SET = exppoints-'".$levelup."' WHERE
= level + 1,= '"$_SESSION['uid']."'");
= exppoints - '”。$ levelup。“'WHERE users
=' ” $ _ SESSION [ 'UID']。 “'”);