0

この質問では、特定のカテゴリにある工場の数を (count を使用して) 表示する方法について尋ねました

私はちょうどこのようなことをしたい:

Sidebar
------
Category1 (3)
Category2 (7)
Category3 (2)

() 内の数字は、特定のカテゴリにある工場です。

結合テーブルを使用して factoryid と categoryid を取得します。このテーブルを factorycategories と呼びました。このようにして、工場に複数のカテゴリを指定できます。

では、カテゴリ ID を持つ工場をどのようにカウントすればよいでしょうか?

URLでIDを使用すると機能しますが、インデックスページではURLにIDがないため機能しません。

私のテーブル構造:

factorycategories
-----------------
idfactorycategories
idfactories
idcategories

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

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

編集

私の現在のコード:

工場モデル:

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();
    }

私の見解では:

print_r($counts)

編集2

それを修正しました。削除しました

foreach($query as $k->$value){

これは私の古い機能でした。

と追加

foreach($counts as $count){
4

2 に答える 2

0

あなたはちょうどこのようなものを探しています

   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

左結合またはサンプル結合でカテゴリ名を取得して、カテゴリテーブルからカテゴリ名を出力するだけです

出力

total   idcategories
3            1
1            2
1            3
于 2013-04-22T11:51:49.150 に答える