Php 无法从我的codeigniter查询代码中获得正确的输出
我正在执行下面代码的输出。但是我得到的数据少了一个。我下面的代码是错误的吗?Php 无法从我的codeigniter查询代码中获得正确的输出,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在执行下面代码的输出。但是我得到的数据少了一个。我下面的代码是错误的吗? 使用正确的变量执行相同的查询,我在我的sql查询浏览器中得到了6个结果。但是从我下面的*代码中,我只得到了5个结果* 这种魔力背后的原因是什么 public function get_all_book_list_ByCreatedDateDSC($limit, $start,$sortsesval) { $id=0; $this->load->helper('date');
使用正确的变量执行相同的查询,我在我的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;
}
请帮我解决我的问题。像这样更改您的函数代码
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
以及之间的。谢谢。问题是我的$start
限额错误。最初我发送了1
,这就是为什么我得到的结果少了一个。我学到了新的东西$this->db->last\u query()
,这对我以后的生活会有帮助,欢迎你!阅读这对你会有很大帮助。