首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取某个类别中的工厂数量

获取某个类别中的工厂数量
EN

Stack Overflow用户
提问于 2013-04-22 19:44:26
回答 2查看 77关注 0票数 0

this问题中,我询问了如何显示位于特定类别中的工厂数量(使用计数)。

我只想做这样的事情:

代码语言:javascript
复制
Sidebar
------
Category1 (3)
Category2 (7)
Category3 (2)

其中,()之间的数字是位于特定类别中的工厂。

我使用一个连接表来获取factoryid和categoryid。我称这个表为factorycategories。通过这种方式,我可以为我的工厂指定多个类别。

那么,如何计算具有类别id的工厂呢?

当我在url中使用id时,我可以让它工作,但在索引页面上,我的url中没有id,所以它不起作用。

我的表结构:

代码语言:javascript
复制
factorycategories
-----------------
idfactorycategories
idfactories
idcategories

factories
---------
idfactories
factoryname
adress
postcode
country
etc etc..

categories
----------
idcategories
category

编辑

我当前的代码:

工厂模型:

代码语言:javascript
复制
function bedrijf_categorie()
{

    $sql = "
    SELECT count(b.idbedrijven) as ItemCount, c.Categorie as Categorie
    FROM `bedrijven` b
    INNER JOIN `bedrijfcategorieen` bc
    ON bc.idbedrijven = b.idbedrijven
    INNER JOIN `categorieen` c
    ON c.idcategorieen = bc.idcategorieen
    GROUP BY c.idcategorieen
    ";
    $query = $this->db->query($sql);
    return $query->result();
}

    function index()
    {
    $data['counts'] = $this->bedrijven_model->bedrijf_categorie();
    }

在我看来:

代码语言:javascript
复制
print_r($counts)

edit2

修好了。我删掉了

代码语言:javascript
复制
foreach($query as $k->$value){

这是我以前的函数。

并添加了

代码语言:javascript
复制
foreach($counts as $count){
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-22 23:24:45

在您的模型中,您需要调整查询。我不确定您的表结构到底是什么样子的,所以我使用自己的示例:

代码语言:javascript
复制
SELECT count(c.id) as ItemCount, p.shortname as Page
FROM `icms3_content` c
INNER JOIN `icms3_page_content` pc
ON pc.content_id = c.id
INNER JOIN `icms3_page` p
ON p.id = pc.page_id
GROUP BY p.id

这为我带来了如下结果:

代码语言:javascript
复制
ItemCount | Page
===========================
        2 | home
        1 | typography
        1 | responsive

这是正确的结果,因为主页有两个内容,而其他两个页面每个页面只有一个项目。

下面是我的表结构:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `icms3_content` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `teaser` varchar(255) NOT NULL,
  `content` longtext NOT NULL,
  `author` varchar(64) NOT NULL,
  `active` enum('Yes','No') NOT NULL,
  `publish_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `unpublish_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

CREATE TABLE IF NOT EXISTS `icms3_page` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `shortname` varchar(64) NOT NULL,
  `image` varchar(255) NOT NULL,
  `title` varchar(64) NOT NULL,
  `keywords` varchar(255) NOT NULL,
  `description` varchar(320) NOT NULL,
  `author` varchar(128) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

CREATE TABLE IF NOT EXISTS `icms3_page_content` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `page_id` int(11) NOT NULL,
  `content_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;

EDIT:使用已发布的表,您的查询将更改为以下内容:

代码语言:javascript
复制
SELECT count(f.id) as ItemCount, c.category as Category
FROM `factories` f
INNER JOIN `factorycategories` fc
ON fc.idfactories = f.idfactories
INNER JOIN `categories` c
ON c.idcategories = fc.idcategories
GROUP BY c.idcategories
票数 0
EN

Stack Overflow用户

发布于 2013-04-22 19:51:49

你只是在找像这样的东西

代码语言:javascript
复制
   select count(Factorycategories.idfactorycategories) as total , Factorycategories.idcategories, Categories.Category from Factorycategories 

LEFT JOIN Categories
ON Factorycategories.idcategories=Categories.idcategories

group by Factorycategories.idcategories


idfactorycategories idcategories    idfactories
        1              1                1
        2                  1                2
        3              2                3
        4              3                4
        5              1                5

您只需使用left join或sample join获取类别名称,即可从category表中打印类别名称

输出

代码语言:javascript
复制
total   idcategories
3            1
1            2
1            3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16146345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档