gpt4 book ai didi

php - Codeigniter + Mysql Active Record 查询 ASC DESC 顺序

转载 作者:行者123 更新时间:2023-11-30 00:46:22 25 4
gpt4 key购买 nike

我有三个表,名称为:

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.Shops (ASC) (Desc)    Category Name   (ASC) (Desc)

1 Ice cream Shops
3 Electronic Shops

这也是类别名称的反诗句。

现在我想通过使用 codeigniter 按降序排列的商店数量来显示结果。

最佳答案

在模型中编写如下所示的方法。

public function get_shops_by_category($order_by_column='shop_cnt',$order_by_method='DESC'){ 
$this->db->select('c.name,COUNT(s.shop_id) as shop_cnt');
$this->db->from('at_category AS c');
$this->db->join('at_shop AS s','c.cat_id = s.shop_category','left');
$this->db->group_by("c.cat_id");
$this->db->order_by("{$order_by_column}", "{$order_by_method}");
return $this->db->get()->result();
}

调用 Controller 中的模型方法。假设我的模型名称是 Shop_model。所以在 Controller 中我将编写:

$order_by_method = (!empty($this->input->get($order_by_method))) ? $order_by_method : 'DESC';
$order_by_column = (!empty($this->input->get($order_by_column))) ? $order_by_column : 'shop_cnt';

$result = $this->shop_model->get_shops_by_category($order_by_column,$order_by_method);

在clikc上,您需要在url中传递order_by_column值和order_by_method值

关于php - Codeigniter + Mysql Active Record 查询 ASC DESC 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21328186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com