2013-03-09 3 views
0

Я выполняю вывод из приведенного ниже кода. Но я получаю одну информацию lesser.Is мой код ниже неправильно?
Тот же запрос с правильной переменной i, выполненный в мой запрос на запрос sql я получаю 6 результатов. Но от моего * ниже кода я получаю только 5 результатов *.
Что может быть причиной этой магии?не может получить правильный результат из кода кода codeigniter

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; 
    } 

Пожалуйста, помогите мне решить мою проблему.

ответ

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, что может привести к изменению количества записей.

+0

Спасибо. Проблема заключалась в том, что мой предел '$ start' был неправильным. Внутри я отправлял '1', поэтому я получал один результат меньше. Я узнаю новую вещь '$ this-> db-> last_query()', которая поможет мне в будущем alot –

+0

Добро пожаловать! Прочтите [Codeigntier User Guide Database Class] (http://ellislab.com/codeigniter/user-guide/database/index.html). Это поможет вам. –

Смежные вопросы