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

你好像少了一个时期

$res2 = mysql_query("UPDATE用户SET级别= level+1,显示= exppoints-'".$levelup."' WHEREid= '"$_SESSION['uid']."'");

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

于 2013-09-09T20:03:02.030 回答
0

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

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

应该:

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

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

此外,从mysql_*PHP v5.5 开始,这些函数已被弃用。请尝试改用MySQLiPDO

于 2013-09-09T19:59:32.107 回答