логика разбиения на страницы без использования смещения по max id в качестве условия фильтра разбиения на страницы для фреймворка php codeigniter - PullRequest
0 голосов
/ 17 декабря 2018

Я вижу, что есть несколько методов, которые мы можем применить для разбивки на страницы, один из них использует библиотеку CI, которая генерирует ссылки для навигации.

- основная логика с центром в

  • выборка ограниченных данных, относящихся к отображению

    и итерация при перемещении по ссылкам на нумерацию страниц. Вот моя логика модели без использования смещения (для производительности использовать первичный ключ id)

с использованием лимита, максимума последнего запуска, пользовательского типа;поэтому следующий запуск должен выполняться в строках, превышающих предоставленный идентификатор.

в контроллере говорит, что я собираю результаты в данные ["results"] как

$data["results"] = $this->ressults_model->fetch_data($config["per_page"],$maxidvalue,$usertype);

в модели.

public function fetch_data($limit,$maxid,$usertype) {
      $date = date('Y-m-d');

      $this->db->limit($limit);
      $this->db->order_by('post_date', 'DESC');
      $this->db->select('id,title');
      if ($usertype == 1)
      {$query = $this->db->get_where('titles',array('id >' => $id,'expiry_date >' => $date));}
      else
      {$query = $this->db->get_where('titles',array('id >' => $id,'expiry_date >' => $date,'visibility'=>'All'));}


      if ($query->num_rows() > 0)
        { return $query->result();  }
      return array();
    }

вызов как рекурсивно собирать и передавать максид для разбивки на страницы.

оцените некоторые указатели.

Спасибо

1 Ответ

0 голосов
/ 17 декабря 2018

Решено!

Я использовал переменную сеанса maxid, которая хранит максимальное значение и передает метод fetch_data в качестве параметра после каждого отображения результатов.

foreach ($data["results"] as $row) {
if ( $this->session->get_userdata('sessiondata')['maxid'] > $row->id)
$this->session->unset_userdata('maxid');
$this->session->set_userdata('maxid',$row->id);
echo "new value".$this->session->get_userdata('sessiondata')['maxid'];
}

пожалуйста, напишите, если у вас есть что-нибудь получшерешение для решения этой проблемы.

Спасибо!

...