【问题标题】:count each rows with codeigniter用codeigniter计算每一行
【发布时间】:2013-03-28 09:43:05
【问题描述】:

我有两张桌子 表话题和表剂量

dosen table---->|dosen_id|dosen_nama|     topik---->|dosen_id1|dosen_id2|
                   1         a                           1       2
                   2         b                           2       1
                   3         c                           1       3

我想计算行 dosen_id1 和 dosen_id2 作为这样的结果

|dosen_nama|count|
      a       3
      b       2
      c       1

我必须在模型中编写什么代码? 请帮帮我...

更新

这是我的控制器

$data['jumlah'] = $this->topikdo_model->get_all_topikdo_jumlah();

这是我的看法

<table class="table table-bordered  table-striped  table-hover ">
        <tbody>
            <tr>

                <th>SANDOS</th>
                <th>Nama</th>
                <th>Jumlah Bimbingan</th>
                <th>Aksi</th>
            </tr>
            <?php
            $no=1;
            foreach($daftardosen as $row)
            {
            ?>
            <tr>

                <td><?php echo $row->dosen_id;?></td>
                <td><?php echo $row->dosen_nama;?></td>
                <td><?php echo $jumlah;?></td>
                <td align='center'>

                    <?php
                    echo anchor('topikdo_controller/rincian_daftardosen/'.$row->dosen_id,'Rincian');
                    ?>
                </td>
            </tr>
            <?php $no++;
            }
            ?>
         </tbody>
    </table>

我已经在 rohini 建议的模型中编写了查询 型号

$sql="SELECT d.dosen_nama, count(t.a) 
  FROM dosen as d, (Select topik_pembimbing1 as a 
                    FROM topik 
                    UNION ALL 
                    SELECT topik_pembimbing2 as a 
                    FROM topik) as t 
  WHERE d.dosen_id = t.a 
  GROUP BY d.dosen_nama"; 
$data=$this->db->query($sql);return $data->result(); 

但出现消息错误“数组到字符串转换”... 对不起,,,我几天前没有任何连接到互联网...

【问题讨论】:

  • 你想要的结果对吗?
  • 请发布您尝试过的代码,以便我们查看您在哪里做错了。

标签: mysql codeigniter activerecord count


【解决方案1】:

您只需执行查询即可获得所需的结果。

SELECT dosen_nama, ((SELECT COUNT(*) FROM topik WHERE dosen_id1=d.dosen_id) +  (SELECT COUNT(*) FROM topik WHERE dosen_id2=d.dosen_id)) AS COUNT
FROM dosen d

【讨论】:

  • 我通过您的查询 Adeel 将消息数组转换为字符串
【解决方案2】:

尝试在您的模型中使用此查询.....!

SELECT d.dosen_nama, count(t.a) 
FROM dosen as d, (Select dosen_id1 as a 
                  FROM topik 
                  UNION ALL 
                  SELECT dosen_id2 as a 
                  FROM topik) as t 
WHERE d.dosen_id = t.a 
GROUP BY d.dosen_nama

更新:

你写过,

$sql="SELECT d.dosen_nama, count(t.a) 
      FROM dosen as d, (Select topik_pembimbing1 as a 
                        FROM topik 
                        UNION ALL 
                        SELECT topik_pembimbing2 as a 
                        FROM topik) as t 
      WHERE d.dosen_id = t.a 
      GROUP BY d.dosen_nama"; 

$data=$this->db->query($sql); 
return $data->result(); 

代码的最后一行将以对象数组的形式返回查询结果,失败时返回空数组。

我怀疑您正在尝试在需要使用字符串的地方使用此数组。 由于尝试将数组解析为字符串,因此您可能会收到此错误。

【讨论】:

  • 我已经写了这段代码,但是我注意到=数组到字符串的转换。 $sql="SELECT d.dosen_nama, count(t.a) FROM dosen as d, (Select topik_pembimbing1 as a FROM topik UNION ALL SELECT topik_pembimbing2 as a FROM topik) as t WHERE d.dosen_id = t.a GROUP BY d.dosen_nama"; $data=$this->db->query($sql);返回 $data->result();
  • 能否请您简要介绍一下您面临的问题。请发布更多代码,以便我为您提供更多帮助...
  • 那么我必须写什么来返回模型并在视图中显示数据?
  • 行 '' rohini
  • 检查 $jumlah 是否包含数组.....尝试使用 print_r($jumlah); 在视图中打印 jumlah 的结果集看看你能得到什么..
猜你喜欢
  • 2011-05-03
  • 2016-10-09
  • 1970-01-01
  • 2016-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多