计数结果在连接表中并显示在侧栏中的()之间

时间:2013-04-03 12:29:52

标签: php mysql codeigniter count

我有一个带有类别的侧边栏。正如您在此处所见:http://kees.een-site-bouwen.nl/

网址中类别的ID。与uri部分(3) 当您单击其中一个类别(例如webdesign)时。 展示了一些工厂。这些工厂加入了这些类别。 所以当类别id = 11时,会显示类别为id = 11的工厂。

但现在我想显示该类别中有多少工厂。输出将显示在

之间

()此处:http://kees.een-site-bouwen.nl/

所以我的实际问题是:我如何count_all_results()所以它只显示了位于该类别中的工厂?

我尝试了什么。

<?php
if (isset($results) && is_array($results)) { 
foreach ($results as $key => $row) { 
$id = $row->idcategorieen; 
$segment3 = $this->uri->segment(3); 
if ($id == $segment3) { 

echo '<h2>Categorie:', '&nbsp;' , $row->Categorie;  
echo '<h2>';
echo br(1);
echo '<p class="field">';
echo '<h3><label class="field">Aantal:</label></h3>', $this->db->count_all_results('bedrijven');
echo '</p>';
echo br(1); 
break;
} 
}
}
?>
<br />
<h4>Bedrijven</h4>
<hr>
<br />
<?php foreach($results as $item):?>

<p>Bedrijfsnaam: <a href="<?php echo base_url()?>home/showindividueel/<?php echo $item->idbedrijven?>">
<?= $item->Bedrijfsnaam   ?></a><br /></p> 
 </tr>
 <?php endforeach;?>

这显示了我数据库中的所有工厂。但我只需要特定类别的那些。

补充工具栏代码:

        echo '<ul>';
        if(isset($cat) && is_array($cat)){
            foreach($links as $k => $value)
                {
                    echo '<li>';
                    echo '<br>';
                    echo '<a href="'.base_url().'home/categorie/'.$value->idcategorieen.' ">' .$value->Categorie. '</a>';
                    echo nbs(1);
                    echo '(';
                    echo ')';
                    echo '</li>';
                }
            }
        echo '<ul>';

感谢。

2 个答案:

答案 0 :(得分:0)

尝试替换

echo '<h3><label class="field">Aantal:</label></h3>', $this->db->count_all_results('bedrijven');

以下

echo '<h3><label class="field">Aantal:</label></h3>', count($results);

答案 1 :(得分:0)

我使用控制器中的新功能解决了我的问题。

我的控制器:

$data['counts'] = $this->bedrijven_model->bedrijf_categorie();

我的模特:

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

我的观点:

    <?php   
    echo '<ul>';
            foreach($counts as $count){

                    echo '<li>';
                    echo '<a href="'.base_url().'home/categorieen/'.$count['Categorie'].' ">' .$count['Categorie']. '</a>';
                    echo nbs(1);
                    echo '(';
                    echo $count['ItemCount'];
                    echo ')';
                    echo '</li>';
                }
    echo '</ul>';
    ?>

反正。感谢帮助过的人。