2012-03-26 95 views
0

我从我的数据库表中获取一些数据。我使用的查询非常简单SQL子查询在结果中查找类别

$query = $this->db->query("SELECT * 
           FROM mc_boxes_has_categories 
           WHERE mc_boxes_idmc_boxes = $box_id 
           "); 
    $categories = $query->result_array(); 
    return $categories; 

此查询的输出如下

Array 
(
[0] => Array 
    (
     [mc_boxes_idmc_boxes] => 12 
     [categories_idcategories] => 1 
    ) 

[1] => Array 
    (
     [mc_boxes_idmc_boxes] => 12 
     [categories_idcategories] => 4 
    ) 

[2] => Array 
    (
     [mc_boxes_idmc_boxes] => 12 
     [categories_idcategories] => 5 
    ) 

) 

我的问题是我怎么能检查是否类别包含类别ID 1然后渲染1个视图,如果它不包含然后渲染另一个视图。我需要检查类别ID 1不知何故可能在SQL中?

感谢

回答

0

如果你想只选择那些类别的有1类变化如下您的选择查询:

$query = $this->db->query("SELECT * 
           FROM mc_boxes_has_categories 
           WHERE mc_boxes_idmc_boxes = $box_id AND categories_idcategories = 1 
           "); 

如果你想选择所有类别,然后做ID为1个类别,有些不同做到这一点:

foreaach($categories as $category) 
{ 
    if($category['categories_idcategories'] == 1) 
    { 
     // render view 1 
    } 
    else 
    { 
     // render another view 
    } 
} 
+0

谢谢...只要我发布我的问题,解决方案出现在我的脑海里 – 2012-03-26 07:59:04

+0

这就是格雷特(我认为你是穆斯林)可能有你的介绍。 – CoreCoder 2012-03-26 08:02:53

+0

是的,我是穆斯林我正在作为学生在germnay做我的主人以及信息学 – 2012-03-26 08:14:55

0

你可以迭代和组

foreach($categories as $row){ 
    $categories[$row['categories_idcategories']][] = $row['mc_boxes_idmc_boxes']; 
} 

// whatever compare logic you need 
if(isset($categories[1][0])){ 

}