0

以下のコードからの出力を実行しています。しかし、データが 1 つ少なくなります。以下のコードは間違っていますか?
正しい変数を使用した同じクエリを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 に答える