在codeigniter上的foreach中的条件(order by)

时间:2014-01-21 07:34:29

标签: php sql codeigniter foreach sql-order-by

我有一个模型函数来从db获取数据,在视图中我想要显示两个类别的数据。

那么有没有办法用两个foreach函数打印数据?

简单来说我有一个内容和视图表,只是我想显示新插入的数据以及这些表中日期范围内查看次数最多的数据。 我刚刚发送了title,date,user_views和published_date来查看文件。

这是我的模特功能:

public function recent($language)
{
    $lang=$language;
    $data = $this->db
                    ->select('title,content.id,published_up','view')
                    ->from('content')
                    ->join('views','content.id = views.content_id')

                    ->where('content.language',$lang)
                    ->where('content.published_up BETWEEN DATE_SUB(CURDATE(), INTERVAL 10 DAY) AND CURDATE()')
                    ->where('content.state','1')
                    ->limit('10')       
                    ->order_by("published_up","DESC")

                    ->get();

    if ($data->num_rows > 0) {

        return $data->result();
    }else{
        return false;
    }
}

这是我的观点:

<?php foreach($recent => $item){
    echo $item->title;
} ?>

现在,如果我想显示观看次数最多的内容,还有其他查询或其他类型的foreach吗?

1 个答案:

答案 0 :(得分:0)

使用这一个...... 我不知道你桌上的田地是什么。

public function recent($language)
{
$lang=$language;
$query = "
SELECT 
   title,content.id,published_up
FROM 
   content,views
WHERE 
   content.id = views.content_id and
   content.language = $lang and
   content.published_up BETWEEN DATE_SUB(CURDATE(), INTERVAL 10 DAY) AND CURDATE() and
   content.state = 1 and
   content.state = 1 ORDER BY 
   published_up DESC LIMIT 10";

if ($query->num_rows > 0) {

    return $this->db->query($query)->result();
}else{
    return false;
}

}

循环(在视图中)

<?php
  foreach($data as $item){
    $item->title;
  }
?>