等级& Exp Point系统

时间:2013-09-09 19:42:25

标签: php mysql sql

我正在尝试创建一个关卡系统,用户通过某些操作获得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,但看不到它的方法。

2 个答案:

答案 0 :(得分:0)

您在where语句中缺少点连接运算符:

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

应该是:

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

在运算符周围添加一些空格可能有助于提高代码的可读性。

此外,自PHP v5.5起,mysql_*函数已弃用。请尝试改为使用MySQLiPDO

答案 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']。 “'”);