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

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

будучи основной логикой, сосредоточенной на

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

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

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

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

$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();
}

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

ценим несколько указателей.

Спасибо

0

Решение

Решено!

я использовал переменную сеанса 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'];
}

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

Спасибо!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector