我正在执行以下代码的输出。但我得到的数据较少。我的下面的代码是错的吗? 相同的查询与正确的变量我执行我的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;
}
请帮我解决问题。
答案 0 :(得分: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
和$offset
以及Between
,可能会导致记录数量发生变化。