0

我正在执行以下代码的输出。但我得到的数据少了。我下面的代码错了吗?我在我的 sql 查询浏览器中
执行了具有正确变量的相同查询,我得到了 6 个结果。但是从我的*下面的代码中,我只得到 5 个结果*。 这种魔法背后的原因可能是什么?

 public function get_all_book_list_ByCreatedDateDSC($limit, $start,$sortsesval)
    {
     $id=0; 
     $this->load->helper('date'); 
     $datestring = "%Y-%m-%d: %d:%h:%i";
     $time = time(); 
     $today=mdate($datestring, $time); 
     $pasttime=date("Y-m-d H:i:s", strtotime("-7 days"));
     printf('$today='.$today);  printf('$pasttime='.$pasttime);

     $this->load->database();  
     $this->db->limit($limit, $start);
     $this->db->select('*'); 
     $query =$this->db->join('coverdetails', 'coverdetails.cover_id = bookdetails.cover_id')->where('quantity >', $id)->where("bookdetails.created_date BETWEEN '$pasttime' AND '$today'")->get('bookdetails');
     print_r('no or rows='.$query->num_rows() );//output no or rows=5

      if ($query->num_rows() > 0)
        {
            foreach ($query->result() as $row)
            {
                $data[] = $row;
            }
            return $data;
        }
    return false;
   }

请帮我解决我的问题。

4

1 回答 1

1

像这样改变你的功能代码

public function get_all_book_list_ByCreatedDateDSC($limit, $start,$sortsesval)
{
    $this->load->helper('date'); 
    $this->load->database();  

    $id         =   0; 
    $datestring =   "%Y-%m-%d: %d:%h:%i";
    $time       =   time(); 
    $today      =   mdate($datestring, $time); 
    $pasttime   =   date("Y-m-d H:i:s", strtotime("-7 days"));



    return $this->db
                ->select('*'); 
                ->join('coverdetails', 'coverdetails.cover_id = bookdetails.cover_id')
                ->where('quantity >', $id)
                ->where("bookdetails.created_date BETWEEN '$pasttime' AND '$today'")
                ->limit($limit, $start)
                ->get('bookdetails');
                ->result_array();
}

也用于测试使用$this->db->last_query()和复制查询而不是将其粘贴到 PHP MyAdmin 中进行测试。其他可能性是$limit并且可能导致记录数量的变化$offsetBetween

于 2013-03-09T14:16:45.617 回答