我的表中存有一些文件名,每个图像都有一个category_id。
我在一个页面上都有画廊。
所以我的问题是,如果我的category_id值为3,那么我希望它显示图像。
如果category_id不是3,我想显示一条消息,"没有内容"或其他什么。
这是我的代码。不知道我哪里出错了。希望有人能帮助我。
<?php
$newlogos = DB::getInstance()->query("SELECT `logo_id`, `creation`, `logo_name`, `category_id`, `org_img`, `new_img` FROM `logos` WHERE category_id = 3 ORDER BY `logo_id` DESC ");
$category_id = ('category_id' == 3);
if($category_id == false){ ?>
<div><h2>No Content</h2></div>
<?php }
if($category_id == true){
foreach($newlogos->results() as $nl){ ?>
//Do Stuff
我尝试过这样的一系列组合,例如:
$category_id = ('category_id' == 3);
if($category_id != 3){ ?>
<div><h2>No Content</h2></div>
<?php }
else{
//Do Stuff
似乎无法弄明白。
答案 0 :(得分:1)
您在此处的陈述不正确:
<?php
$category_id = ('category_id' == 3);
?>
您正在尝试将字符串与整数进行比较,而这始终会返回 false 。
修改强>
执行查询后,需要从数据库中获取数据。将数据存储在变量(例如$ data)后,您可以将其比较如下:
<?php
$category_id = ((int)$data['category_id'] == 3);
?>
编辑:@cwd :
这是一种方法:
<?php
//$con is database connection object
$result = mysqli_query($con,"SELECT `logo_id`, `creation`, `logo_name`, `category_id`, `org_img`, `new_img` FROM `logos` WHERE category_id = 3 ORDER BY `logo_id` DESC LIMIT 0,1");
$row = mysqli_fetch_assoc($result);
$category_id = (int)$row['category_id'] == 3 ?true:false;
?>
这可能会对你有帮助。