繁体   English   中英

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

[英]Mysql codeigniter php asc desc order by count result using php

我有三个名为的表:

at_category:

  1. CAT_ID
  2. 名称

at_category_taxonomy:

  1. cat_taxonomy_id
  2. CAT_ID
  3. 分类

at_shop:

  1. shop_id
  2. shop_category

我想通过计算结果加入这三个表。

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

示例:

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) 

    ________________________________

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

期待输出:

No.Of.Shops (ASC) (Desc)    Category Name   (ASC) (Desc)

     3                         Electronic Shops
     1                         Ice cream Shops 

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

No.Of.Shops (ASC) (Desc)    Category Name   (ASC) (Desc)

     1                          Ice cream Shops   
     3                          Electronic Shops

这也是类别名称的vise verse。

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

不确定这是否是最佳做法。 如果你在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();

选择电子邮件,将(*)计为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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM