Подзапрос SQL для поиска категории в результате - PullRequest
0 голосов
/ 26 марта 2012

Я получаю некоторые данные из своей таблицы базы данных.Я использую очень простой запрос

$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
    )

)

Мой вопрос: как я могу проверить, содержат ли категории идентификатор категории 1, а затем отобразить 1view и, если он не содержит, то отрендерить другой view.Мне нужно проверить для категории ID 1, как это возможно в SQL?

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Вы можете повторить и сгруппировать

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

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

}
0 голосов
/ 26 марта 2012

Если вы хотите выбрать только те категории, которые имеют категорию 1, измените ваш запрос на выборку, как показано ниже:

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

И если вы хотите выбрать все категории, а затем сделать несколько другое с категориями с идентификатором 1, сделайте это:

foreaach($categories as $category)
{
   if($category['categories_idcategories'] == 1)
   {
       // render view 1  
   }
   else
   {
       // render another view
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...