goodmhjmhj 发表于 2014-1-13 19:09:31

ci中查询最近7天内最热的帖子的问题

我想完成的功能是:查询数据库中最近7天内的帖子。
contro层是这样写的(只截取部分代码)

if($this->uri->segment(3)=="week"){ //列出一周内最热
                   $tm=time()-(7*24*3600);
                   echo time();
                   echo $tm;
                   $data['jokes'] = $this->joke_model->get_jokes_hot($config['per_page'],$this->uri->segment(3),$tm);
               }


model层是这样写的:

public function get_jokes_hot($limit, $offset,$tm){
        $this->db->order_by('likeNum','desc');
        $this->db->where('createtime >', $tm);
      $query = $this->db->get('joke',$limit, $offset);
       return $query->result_array();
   }

但程序运行结果时间限制不起作用,列出的仍然是所有帖子

求解!!!


goodmhjmhj 发表于 2014-1-13 19:27:27

补充一下数据库内的createtime字段形式为 2013-12-06 22:41:16datetime

goodmhjmhj 发表于 2014-1-14 13:15:25

跪求解答啊

ljc 发表于 2014-1-14 14:38:23

sql 有个week函数,一个sql就搞定了

goodmhjmhj 发表于 2014-1-14 17:17:08

ljc 发表于 2014-1-14 14:38 static/image/common/back.gif
sql 有个week函数,一个sql就搞定了

能具体一些吗?

ljc 发表于 2014-1-14 17:38:07

sql中加上where week(createtime)=week(now())
这表示创建时间是当前这周的

憨直君 发表于 2014-1-15 14:03:31

哈~:time:

Bobby 发表于 2014-1-16 09:35:36

学会调试, 打印下SQL就知道了吧。
$data['jokes'] = $this->joke_model->get_jokes_hot($config['per_page'],$this->uri->segment(3),$tm);

下插入

echo $this->joke_model->db->last_query();

goodmhjmhj 发表于 2014-1-17 11:40:48

$tm=time()-7*24*3600;
用sql语句在直接在数据库中测试,select * from db_joke where createtime> $tm

查询出的结果还是从2013-12-06遮天开始的,我是今天测试的,
求解!!!
页: [1]
查看完整版本: ci中查询最近7天内最热的帖子的问题