我有if语句并且遇到问题。
需要说:
如果耐力场大于0然后+ exp场,+金场, - stamina场别别做其他事
我有添加和带走字段部分工作。然而,在这个if语句中它没有这样做,除非我把它放在“做其他事情”部分。但是,当我把它放在if语句的那一部分时,它不会停在0。
<?php
include '../core/init.php';
$id = $_SESSION['user_id'];
$result = mysql_query('SELECT `stamina`FROM `characters` WHERE `id` = "$id"');
$row = mysql_fetch_row($result);
$stam = $row[0];
if ($stam > 0) {
mysql_query('UPDATE `characters` SET `exp` = `exp` + 1, `gold` = `gold`+10, `stamina`=`stamina`-1 WHERE id = "'.$id.'"');
} else {
}
?>
我的连接在init.php中是“必需的”,完全正常。
我已经尝试了许多不同的方法来改变方程式。
好的,现在我已经编辑了这个声明,现在已经完成了一半。这是:
<?php
include '../core/init.php';
$id = $_SESSION['user_id'];
$stam = mysql_query('SELECT `stamina` FROM `characters` WHERE `id` = "$id"');
if ($stam >= 1){
mysql_query('UPDATE `characters` SET `exp` = `exp` + 1, `gold` = `gold`+10, `stamina`=`stamina`-1 WHERE id = "'.$id.'"');
} else if ($stam < 1){
}
?>
新问题是,即使$ stam小于1,它仍会在if语句中运行查询。
答案 0 :(得分:1)
尝试:
$result = mysql_query('SELECT `stamina` FROM `characters` WHERE `id` = ' . $id);
if ($result['stamina'] >= 1){
mysql_query('UPDATE `characters` SET `exp` = `exp` + 1, `gold` = `gold`+10,
`stamina`=`stamina`-1 WHERE id = ' . $id);
} else if ($result['stamina'] < 1){
}
虽然你应该研究一下新的mysqli_ *函数。 http://php.net/manual/en/book.mysqli.php
修改强> 我刚刚意识到另一个问题。在第一个查询中,您将$ id变量包含在单引号中。
答案 1 :(得分:0)
或许指定$stam
是integer
?尝试:
if ((int)$stam >= 1 ){