在PHP中,如果列为false,则运行mysql查询
如果第一个mysql查询coulmn返回false或设置为false,我将尝试显示mysql查询的结果和一些html。我尝试了一些方法,但似乎无法使其正常工作,我将在下面显示代码。非常感谢您的帮助。在代码中,如果用户的确认为false,我只想显示站点消息,否则不显示任何内容在PHP中,如果列为false,则运行mysql查询,php,mysql,Php,Mysql,如果第一个mysql查询coulmn返回false或设置为false,我将尝试显示mysql查询的结果和一些html。我尝试了一些方法,但似乎无法使其正常工作,我将在下面显示代码。非常感谢您的帮助。在代码中,如果用户的确认为false,我只想显示站点消息,否则不显示任何内容 function siteWideMessage()
function siteWideMessage()
{
global $dbh;
$siteMessage = "";
$sUserInfo = $dbh->prepare("
SELECT acknowledgement
FROM user
WHERE uid = :uid
");
$sUserInfo->bindValue(":uid", $_SESSION["uid"]);
if ($sUserInfo->execute()) {
$res = $sUserInfo->fetch();
if ($res["acknowledgement"] = false) {
$stmt = $dbh->query("
SELECT message
FROM SiteWideMessages
ORDER BY idSiteWideMessages DESC
LIMIT 1
");
while ($row = $stmt->fetch()) {
$siteMessage .= "
<div class='siteMessage'>
<span>" . $row["message"] . "</span>
<br><br>
<span style='font-weight:normal;'>I acknowledge that I have read this important site message</span>
<br>
<input type='submit' name='submit' value='I Agree'></input>
</div>";
}
}
$sUserInfo->closeCursor();
}
if (isset($_POST["submit"])) {
$stmt = $dbh->prepare("
UPDATE user
SET `acknowledgement` = 'true'
WHERE uid = :uid
");
$stmt->bindValue(":uid", $_SESSION["uid"]);
if($stmt->execute()) {
$stmt->closeCursor();
}
}
return $siteMessage; }
谢谢大家的帮助 您的if语句中缺少一个
=
。应该是:
...
if ($res["acknowledgement"] === false) {
...
如果($res[“Acknowledge”]=false)不是检查,则将其设置为false,并且if将始终失败。。再加1=谢谢你快速回复Svetlio,我想我一定有更大的下划线问题,或者我的逻辑错了。我试图使用if($res[“acknowledge”]==false),我认为如果mysql中的列(acknowledge)为false,它将显示结果。我是对的还是我的逻辑错了?事实上我想我知道了,我使用了if($res[“acknowledge”]=“false”),并且它的显示正确。谢谢你的帮助!感谢你的帮助Jerodev,我成功地让逻辑正常工作了,我只需要使用“==”并将false转换成字符串。现在可以正常显示了。
...
if ($res["acknowledgement"] === false) {
...