如果value为true,如果value为false,则显示其他内容

时间:2014-06-07 07:33:21

标签: php

我的表中存有一些文件名,每个图像都有一个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

似乎无法弄明白。

1 个答案:

答案 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;
 ?>

这可能会对你有帮助。