我正在创建一个大厅系统,我正在制作它以便获得玩家数量并添加一个,如果它是10,它将执行不同的查询而不是正常查询。问题是,我将其中一个值设置为10并将其设置为0而不是完成查询的其他部分。
代码:
$new_playercount = $match_playercount + 1;
if($new_playercount == 10) {
$query = "UPDATE queue SET match_playercount='".$new_playercount."' AND match_admin_needed='1' WHERE match_id='".$match_id."'";
try {
$stmt = $dbConnect->prepare($query);
$result = $stmt->execute();
}
catch(PDOException $ex) {
die();
}
header('Location: view-lobby/index.php?match_id='.$match_id);
die();
} else {
$query = "UPDATE queue SET match_playercount='".$new_playercount."' WHERE match_id='".$match_id."'";
try {
$stmt = $dbConnect->prepare($query);
$result = $stmt->execute();
}
catch(PDOException $ex) {
die();
}
header('Location: view-lobby/index.php?match_id='.$match_id);
die();
}
告诉我你是否需要别的东西,我会尽力提供。但是我通过将playercount设置为9来测试它,然后加入将添加1的大厅,并且它应该设置为10并且match_admin_needed设置为1,但它不会执行任何操作,并且它实际上将playercount重置为0 ...
答案 0 :(得分:2)
因为您的第一个查询不正确。
UPDATE queue SET match_playercount='".$new_playercount."' AND match_admin...
^
如果您更新了2列,则必须在它们之间使用逗号(,
),而不是AND
,这会导致比较。
当你使用AND
时,它会比较两边,然后返回一个布尔结果,然后存储为0或1,而不是更新你的2列。