Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从我的codeigniter查询代码中获得正确的输出_Php_Mysql_Codeigniter - Fatal编程技术网

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()
,这对我以后的生活会有帮助,欢迎你!阅读这对你会有很大帮助。