在codeigniter活动记录 [英] Active record in codeigniter

查看:117
本文介绍了在codeigniter活动记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何人都可以将这个查询活动记录codeigniter ???

Anybody can convert this query to active record codeigniter???

 SELECT  b.name,
    SUM(CASE WHEN c.size = 'S' THEN 1 ELSE 0 END) S,
    SUM(CASE WHEN c.size = 'M' THEN 1 ELSE 0 END) M,
    SUM(CASE WHEN c.size = 'L' THEN 1 ELSE 0 END) L,
    SUM(CASE WHEN c.size = 'XL' THEN 1 ELSE 0 END) XL
   FROM    orderTB a
    INNER JOIN productTB b
        ON a.id_product = b.id_shirt
    INNER JOIN sizeTB c
        ON a.id_size = c.id_size
GROUP BY b.name

我已经试过这样

i've tried like this

  function get()
 {
  $this->db->select("b.name,SUM(CASE WHEN c.size ='S' THEN 1 ELSE 0 END) as S,SUM(CASE    WHEN c.size = 'M' THEN 1 ELSE 0 END) as M,SUM(CASE WHEN c.size = 'L' THEN 1 ELSE 0 END) as   L,SUM(CASE WHEN c.size = 'XL' THEN 1 ELSE 0 END) as XL");

 $this->db->from('order');
 $this->db->join('ukuran','order.id_size=ukuran.id_size');
 $this->db->where('date',$date);
 return $this->db->get();
 }

但它的错

推荐答案

只是试试这个,让我知道,

Just try this one and let me know,

$this->db->select("b.name,SUM(CASE WHEN c.size = 'S' THEN 1 ELSE 0 END) S,SUM(CASE WHEN c.size = 'M' THEN 1 ELSE 0 END) M,SUM(CASE WHEN c.size = 'L' THEN 1 ELSE 0 END) L,SUM(CASE WHEN c.size = 'XL' THEN 1 ELSE 0 END) XL", FALSE );
$this->db->from('orderTB a');
$this->db->join('productTB b','a.id_product = b.id_shirt','inner');
$this->db->join('sizeTB c','a.id_size = c.id_size','inner');
$this->db->group_by('b.name');

从文件这里

$这个 - > DB->选择()接受一个可选的第二个参数。如果设置   它为FALSE,codeIgniter不会尽力保护你的领域或表   名与反引号。如果你需要一个化合物的选择,这非常有用   声明。

$this->db->select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.

修改

只需添加 FALSE 在你的SELECT语句

Just add FALSE in your select statement

function get() {
    $this->db->select("b.name,SUM(CASE WHEN c.size ='S' THEN 1 ELSE 0 END) as S,SUM(CASE    WHEN c.size = 'M' THEN 1 ELSE 0 END) as M,SUM(CASE WHEN c.size = 'L' THEN 1 ELSE 0 END) as   L,SUM(CASE WHEN c.size = 'XL' THEN 1 ELSE 0 END) as XL",FALSE);

    $this->db->from('order');
    $this->db->join('ukuran','order.id_size=ukuran.id_size');
    $this->db->where('date',$date);
    return $this->db->get();
}

这篇关于在codeigniter活动记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆