php代码的反馈

时间:2015-09-14 19:59:01

标签: php mysql

你好我们从一个名为Eppl的变量中减去一个单位,它驻留在数据库中,这是完美的。但是我添加了一个条件,即在减法发生之前变量Eppl的值必须大于0。我的代码如下:

$id = $_GET["id"];
$result = $mysqli->query("SELECT `CreatedBy` AND `Eppl` FROM `events` WHERE `Eid` = '$id'");
$row = $result->fetch_assoc();
$sessionid = $row['CreatedBy'];
$notlesszero = $row['Eppl'];
$zero = 0;
//echo $result;

session_start();
if ((!($_SESSION['login_user'] == $sessionid)) && ($notlesszero>0)){

$mysqli->query("UPDATE `events` SET `Eppl` = `Eppl` - 1 WHERE `Eid` = '$id'");
$mysqli->query("INSERT INTO `eventusers` (EventID, UserID) VALUES ('{$id}', '{$_SESSION['login_user']}')");

header("location:view.php");    
//}

}

if分支在没有第二个条件的情况下工作$notlesszero>0 ... 这有什么问题?

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

为什么不在UPDATE上添加条件,而不是查询数据库以获取字段的值然后检查它?

$mysqli->query("UPDATE `events` SET `Eppl` = `Eppl` - 1 WHERE `Eid` = '$id'");

$mysqli->query("UPDATE `events` SET `Eppl` = `Eppl` - 1 WHERE `Eid` = '$id' AND `Eppl` > 0");

答案 1 :(得分:1)

向您添加Eppl后,第一个查询错误。要选择的字段不应由AND分隔。所以

SELECT `CreatedBy` AND `Eppl` FROM

应该是

SELECT `CreatedBy`, `Eppl` FROM

通过在执行查询后检查错误信息,或者至少在更改查询后检查$row,可以捕获这些内容。 :-P