我正在开设一个小型在线网站,其内容包含"问题"。这是我收集的代码:
<?php
$issue_sql = "SELECT * FROM issues WHERE id = '$id'"; // From URL
$issue_res = mysqli_query($con, $issue_sql);
while($issue = mysqli_fetch_assoc($issue_res)){
$issue_id = $issue["id"];
$issue_added = $issue["added"];
$issue_content = $issue["content"];
$issue_endorsed = $issue["endorsed"];
$issue_year = date("Y", strtotime($issue_added));
$issue_date = date("l jS F, Y", strtotime($issue_added));
}
?>
我希望display
只有在它存在的情况下才会认可(在这种情况下它确实存在)。所以我的代码是:
<?php
if($issue_endorsed === 1){
$endorsed_sql = "SELECT article FROM issue_endorsed WHERE id = '$issue_id'";
$endorsed_res = mysqli_query($con, $endorsed_sql);
while($endorsed = mysqli_fetch_assoc($endorsed_res)){
$endorsed_article = $endorsed["article"];
$display_endorsed = "
<div class=\"section\">
<div class=\"sectionText\">
<b>We Recommend ...</b>
<br>
... $endorsed_article
</div>
</div>
<div class=\"contentDivideSecondary\"></div>
";
}
}else{
$display_endorsed = "Not Here";
};
?>
问题是,当我在html代码中<?php echo display_endorsed; ?>
之后,我显示了Not Here
而不是实际内容。谁能看到我出错的地方?
答案 0 :(得分:1)
你在哪里与一件主要事情有关的问题。 MySQL可能会将列endorsed
的数据库值作为字符串返回。现在你的if语句:
if($issue_endorsed === 1){
正在进行身份比较。说$issue_endorsed
与1的整数相同?这不是真的,因为数据库将其作为字符串返回。将其切换为==
可以解决问题,因为它会在比较之前将字符串"1"
变成整数1
。
要记住这样一个问题的要点是