CodeIgniter:显示两个查询结果,一个返回

时间:2016-11-21 15:01:32

标签: php codeigniter

我正在尝试显示“类别”数据库,这部分非常简单。困难的部分是我需要从“类别”数据库中计算子类别并用一个表格显示它们。

Category | Sub Category
------------------------
Cat A    |      5
Cat B    |      7

这是我的型号:

function category() {
$query = $this->db->get('category');
$result = $query->result_array();
foreach($query->row() as $q) {
 $this->db->where('subcat_id', $q['cat_id']);
 $query2 = $this->db->get('subcat');
 if($query2) {
  return true;
 } else {
  return false;
 }

这是我的控制器:

function dispaly_category() {
$data['category'] = $this->mymodel->category();
$this->load->view('view', $data);
}

这是我的查看:

<table>
 <thead>
  <th>Category</th>
  <th>Subcategory</th>
 </thead>
 <tbody>
  <?php foreach($category as $c) : ?>
  <tr>
   <td><?php echo $c->category_name; ?></td>
   <td><?php echo (count subcat for the above category); ?></td>
  </tr>
  <?php endforeach; ?>
 </tbody>
</table>

1 个答案:

答案 0 :(得分:0)

我只是在假设您只有一张表的情况下发布答案(您不需要为子类别单独的表格,但如果您确实需要第二个表格,您应该能够推导出这个在我的答案)

你的模特

function category() 
{
    $query = $this->db
        ->select("c.*, count(cc.id) AS countSubCategories")
        ->from("category c")
        ->join("category cc", "cc.parent_id = c.cat_id","left")
        ->group_by("c.id")
        ->get();

    return $query->result();
}

您的控制器

function display_category() 
{

    $arrViewData = array(
        'category' => $this->mymodel->category()
    );
    $this->load->view('view', $arrViewData);
}

您的观点

<table>
 <thead>
    <th>Category</th>
    <th>Subcategory</th>
 </thead>
 <tbody>
    <?php foreach($category as $c) : ?>
    <tr>
        <td><?php echo $c->category_name; ?></td>
        <td><?php echo $c->countSubCategories; ?></td>
    </tr>
    <?php endforeach; ?>
 </tbody>
</table>