2016-05-07 78 views
1

第一頁顯示沒有錯誤,但當我點擊'2'頁按鈕分頁時它給出了這個錯誤: 如果有人可以請看看這段代碼,並告訴我爲什麼它不工作。先謝謝你。Codeigniter:分頁不工作

A Database Error Occurred

Error Number: 1064

Erreur de syntaxe près de ''20', 20' à la ligne 1

SELECT * FROM avto WHERE category = 'yengil' ORDER BY id DESC LIMIT '20', 20

Filename: D:/wamp/www/avtosavdo.uz/application/models/News_model.php

Line Number: 30

這裏我控制器代碼:

  public function prisepNews() 
    { 
      $this->pagination('prisepnews', 'prisep'); 
      $title['title'] = 'Прицеп'; 
      $this->load->view('templates/navbar', $title); 
      $this->load->view('news/allNews', $data); 
    } 

      public function pagination($url, $value) 
    { 
      $config['base_url'] = base_url() . 'index.php/news/'.$url.'/'; 
      $config['total_rows'] = $this->news_model->record_count($value); 
      $config['per_page'] = 20; 
      $config['uri_segment'] = 3; 
      $config['num_links'] = 3; 
      $config['first_link'] = 'Биринчи'; 
      $config['last_link'] = 'Охирги'; 
      $config['next_link'] = 'Кейинги'; 
      $config['prev_link'] = 'Олдинги'; 
      $config['full_tag_open'] = '<ul class="pagination">'; 
      $config['full_tag_close'] = '</ul>'; 
      $config['first_tag_open'] = '<li>'; 
      $config['first_tag_close'] = '</li>'; 
      $config['last_tag_open'] = '<li>'; 
      $config['last_tag_close'] = '</li>'; 
      $config['next_tag_open'] = '<li>'; 
      $config['next_tag_close'] = '</li>'; 
      $config['prev_tag_open'] = '<li>'; 
      $config['prev_tag_close'] = '</li>'; 
      $config['cur_tag_open'] = '<li class="active"><a href="#">'; 
      $config['cur_tag_close'] = '</a></li>'; 
      $config['num_tag_open'] = '<li>'; 
      $config['num_tag_close'] = '</li>'; 

      $this->pagination->initialize($config); 

      $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; 
      $data['news'] = $this->news_model->get_news($config['per_page'], $page, $value); 
      $data['pagination'] = $this->pagination->create_links(); 
      return $data; 
    } 

這裏我的模型代碼:

  $sql = "SELECT * FROM avto WHERE category = ? ORDER BY id DESC LIMIT ?, ?"; 
      $query = $this->db->query($sql, array($category, $start, $limit)); 

      if ($query->num_rows() > 0) { 
       foreach ($query->result_array() as $row) { 
        $data[] = $row; 
       } 
       return $data; 
      } 
      return false; 

回答

0

行情在LIMIT '20'創建問題。

您需要更改查詢

$this->db->select('*'); 
$this->db->where("category",$category); 
$this->db->order_by("id","DESC"); 
$query = $this->db->get('avto', $limit, $start); 
if ($query->num_rows() > 0) { 
      foreach ($query->result_array() as $row) { 
       $data[] = $row; 
      } 
      return $data; 
     } 
     return false; 
+1

感謝它的工作原理,但應改變以ORDER_BY和$的地方開始,$限制$極限,$開始 – uzphpcoder

+0

嗯高興地知道它的作品! !我更新了我的答案 – Saty