Mysql codeigniter php asc desc命令使用php计数结果

时间:2014-01-18 11:14:42

标签: php mysql codeigniter codeigniter-2

我有三个名为:

的表

at_category:

  1. CAT_ID
  2. 名称
  3. at_category_taxonomy:

    1. cat_taxonomy_id
    2. CAT_ID
    3. 分类
    4. at_shop:

      1. shop_id
      2. shop_category
      3. 我想通过计算结果来加入这三个表。

        例如at_category表中名为电子商店的类别,该值将存储在at_category_taxonomy表中,此类别ID在{{{{}}中有两个商店1}}表。与剩余的类别 aaa,bbb,ccc 等相同......它可能有一两个商店,零店铺。

        示例:

        at_shop

        现在:拥有3家商店的电子商店类别和拥有1家商店的冰淇淋店

        期待输出:

        1. at_category
        
            ______________
        
            cat_id   name
        
             1       Electronic Shops
             2       Ice Cream Shops
            _______________
        
            2. at_category_taxonomy
        
            _______________________________________________
        
            cat_taxonomy_id   cat_id   taxonomy
        
              3                 1       Electronic Shops
              4                 2       Ice Cream Shops
            _______________________________________________
        
            3. at_shop
        
            ________________________________
        
            shop_id   shop_name   shop_category
        
             1            A         1 (ie.Electronic Shops) 
             2            B         1 (ie.Electronic Shops) 
             3            C         1 (ie.Electronic Shops) 
             4            D         2 (ie.Ice Cream Shops) 
        
            ________________________________
        

        当我点击no.of商店列中的asc订单时,输出将是

        No.Of.Shops (ASC) (Desc)    Category Name   (ASC) (Desc)
        
             3                         Electronic Shops
             1                         Ice cream Shops 
        

        这也是类别名称的vise verse。

        现在我想通过使用codeigniter按照desc顺序计算商店数来显示结果。

2 个答案:

答案 0 :(得分:0)

不确定这是否是最佳做法。如果你在DB中有很多数据也可能不太好。但我想建议。

1.获取一个数组ID。

2.为每个类别加入如下表格。 (使用数组的foreach循环)

$this->db->select('*');    
$this->db->from('at_category');
$this->db->join('at_category_taxonomy', 'at_category.cat_id = at_category_taxonomy.cat_id');
$this->db->join('at_shop', 'at_category.cat_id = at_shop.shop_category');
$this->db->where('at_category', 1);
$query = $this->db->get();

在上面的代码中,$this->db->where('at_category',从数组中获取ID );

3. $query是每个类别的结果。

4.每个类别的商店数量可以视为,

$numberOfShos = $query->num_rows();

答案 1 :(得分:0)

选择电子邮件,将(*)计为c FROM订单GROUP BY电子邮件

$this->db->select('COUNT(sh.shop_category) as No_of_shops,cat.name as category_name',FALSE);
$this->db->from('at_shop sh');
$this->db->join('at_category cat', 'cat.cat_id = sh.shop_category');
$this->db->order_by('sh.shop_category');
$query = $this->db->get();
retuen $query->result_array();