Intereting Posts
Zend_Cache: после загрузки кэшированных данных кодировка символов кажется испорченной Учетная запись службы календаря Google с API-интерфейсом PHP oauth2.0 – Как получить доступ к календарям, которые не используются совместно Laravel Создание динамических маршрутов для контроллеров из базы данных Mysql Как отправить дополнительные данные с помощью PLupload? API TTS Google: кодирование запроса GET с помощью PHP Не удалось загрузить запрошенный класс: Session Codeigniter 3 Как отсортировать массив в порядке убывания на основе определенного значения Правила проверки формы кода CodeIgniter для флажка Как можно проверить, существует ли удаленный файл с помощью PHP? Удаление элементов из массива внутри foreach Кажется, что переменные сеанса не сохраняются Простая структура сайта RewriteRule для параметров PHP GET надежное обнаружение браузера пользователя с помощью php Кодировать URL из C #, расшифровывать URL-адрес в PHP (добавляются дополнительные символы) Как выполнить вызов onclick ajax в php-файле с помощью jquery?

Класс pagination PHP

Я ищу класс pg pgination, я использовал довольно простой в прошлом, и он больше не поддерживается.

Мне было интересно, есть ли у кого-нибудь рекомендации?

Кажется бессмысленным строить свои собственные, когда есть, вероятно, так много хороших там.

После большего поиска я решил, что до того, как я использую каркасную версию, я должен полностью понять, что связано с paginator. Поэтому я сам построил. Спасибо за предложения, хотя!

Я бы предложил Zend_Paginator по следующим причинам

  • Он слабо связан и не требует всей библиотеки.
  • Сообщество ZF больше, чем сообщество PEAR, и активно проводит аудит безопасности в коде и выпускает версии обслуживания.
  • Он отделяет источники данных с помощью шаблона адаптера, и в документации есть множество примеров реализации интерфейса пользовательского интерфейса переднего плана.

Вы пробовали PEAR :: Pager ? Примеры использования здесь .

// pagination class class Pagination { // database handle private $dbh; // total records in table private $total_records; // limit of items per page private $limit; // total number of pages needed private $total_pages; // first and back links private $firstBack; // next and last links private $nextLast; // where are we among all pages? private $where; public function __construct($dbh) { $this->dbh = $dbh; } // determines the total number of records in table public function totalRecords($query, array $params) { $stmt = $this->dbh->prepare($query); $stmt->execute($params); $this->total_records = $stmt->fetchAll(PDO::FETCH_COLUMN)[0]; if (!$this->total_records) { echo 'No records found!'; return; } } // sets limit and number of pages public function setLimit($limit) { $this->limit = $limit; // determines how many pages there will be if (!empty($this->total_records)) { $this->total_pages = ceil($this->total_records / $this->limit); } } // determine what the current page is also, it returns the current page public function page() { $pageno = (int)(isset($_GET['pageno'])) ? $_GET['pageno'] : $pageno = 1; // out of range check if ($pageno > $this->total_pages) { $pageno = $this->total_pages; } elseif ($pageno < 1) { $pageno = 1; } // links if ($pageno > 1) { // backtrack $prevpage = $pageno -1; // 'first' and 'back' links $this->firstBack = "<div class='first-back'><a href='$_SERVER[PHP_SELF]?pageno=1'>First</a> <a href='$_SERVER[PHP_SELF]?pageno=$prevpage'>Back</a></div>"; } $this->where = "<div class='page-count'>(Page $pageno of $this->total_pages)</div>"; if ($pageno < $this->total_pages) { // forward $nextpage = $pageno + 1; // 'next' and 'last' links $this->nextLast = "<div class='next-last'><a href='$_SERVER[PHP_SELF]?pageno=$nextpage'>Next</a> <a href='$_SERVER[PHP_SELF]?pageno=$this->total_pages'>Last</a></div>"; } return $pageno; } // get first and back links public function firstBack() { return $this->firstBack; } // get next and last links public function nextLast() { return $this->nextLast; } // get where we are among pages public function where() { return $this->where; } } 

Использование:

 $pagination = new Pagination($dbh); $pagination->totalRecords('SELECT COUNT(*) FROM `photos` WHERE `user` = :user', array(':user' => $_SESSION['id'])); $pagination->setLimit(12); $pagination->page(); echo $pagination->firstBack(); echo $pagination->where(); echo $pagination->nextLast(); 

Результат:

 <div class='first-back'><a href='/xampp/web_development/new_study_2014/imagebox2016/app/public/test.php?pageno=1'>First</a> <a href='/xampp/web_development/new_study_2014/imagebox2016/app/public/test.php?pageno=3'>Back</a></div> <div class='page-count'>(Page 4 of 6)</div> <div class='next-last'><a href='/xampp/web_development/new_study_2014/imagebox2016/app/public/test.php?pageno=5'>Next</a> <a href='/xampp/web_development/new_study_2014/imagebox2016/app/public/test.php?pageno=6'>Last</a></div> 
 public function make_pagination() { $total = 0; $query = "SELECT COUNT(downloads.dn_id) FROM downloads WHERE downloads.dn_type = 'audios'"; $stmt = $this->conn->prepare($query); $stmt->execute(); $total = $stmt->fetchColumn(); //echo 'row_count = ' . $total; // How many items to list per page $limit = 11; // How many pages will there be $pages = ceil($total / $limit); // What page are we currently on? $page = min($pages, filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, array( 'options' => array( 'default' => 1, 'min_range' => 1, ), ))); // Calculate the offset for the query $offset = ($page - 1) * $limit; // Some information to display to the user $start = $offset + 1; $end = min(($offset + $limit), $total); // The "back" link $prevlink = ($page > 1) ? '<a href="?page=1" title="First page">&laquo;</a> <a href="?page=' . ($page - 1) . '" title="Previous page">&lsaquo;</a>' : '<span class="disabled">&laquo;</span> <span class="disabled">&lsaquo;</span>'; // The "forward" link $nextlink = ($page < $pages) ? '<a href="?page=' . ($page + 1) . '" title="Next page">&rsaquo;</a> <a href="?page=' . $pages . '" title="Last page">&raquo;</a>' : '<span class="disabled">&rsaquo;</span> <span class="disabled">&raquo;</span>'; // Display the paging information echo '<div id="paging"><p>'.$prevlink.' Page '.$page.' of '.$pages. ' pages'. $nextlink.' </p></div>'; //prepare the page query $query2 = " SELECT * FROM downloads, map_artists, song_artists WHERE map_artists.dn_id = downloads.dn_id AND song_artists.artist_id = map_artists.artist_id AND downloads.dn_type = 'audios' GROUP BY downloads.dn_id ORDER BY downloads.dn_time DESC LIMIT :limit OFFSET :offset "; $stmt2 = $this->conn->prepare($query2); $stmt2->bindParam(':limit', $limit, PDO::PARAM_INT); $stmt2->bindParam(':offset', $offset, PDO::PARAM_INT); $stmt2->execute(); // Do we have any results? if ($stmt2->rowCount() > 0) { // Define how we want to fetch the results $stmt2->setFetchMode(PDO::FETCH_ASSOC); $iterator = new IteratorIterator($stmt2); // Display the results foreach ($iterator as $row) { echo '<p>'. $row['dn_title'].' - '. $row['artist_name'].'</p>'; } } else { echo '<p>No results could be displayed.</p>'; } } 

вы можете попробовать следующее: Zebra_Pagination, общий, Twitter Bootstrap, класс разбивки на страницы, написанный на PHP, проверить ссылку ниже: http://stefangabos.ro/php-libraries/zebra-pagination

Очень возможно, что ваш запрос SQL SELECT может 1000 привести к тысячам записей. Но не стоит показывать все результаты на одной странице. Таким образом, мы можем разделить этот результат на многие страницы по требованию как класс разбиения на страницы.

PAGINATE DATA WITH PAGINATION CLASS ОЧЕНЬ ЛЕГКО

Класс разбиения на страницы помогает генерировать пейджинг

Как использовать класс разбиения на страницы, перейдите по этой ссылке для получения дополнительной информации http://utlearn.com/2017/02/15/pagination-class-use-pagination-class/

 <?php /** * @package pagination class * @version 1.0 */ /* @class Name: pagination @Author: Ahmed Mohamed @Version: 1.0 @Author URI: https://www.fb.com/100002349977660 @Website URI: http://www.utlearn.com @class page URI: http://utlearn.com/2017/02/15/pagination-class-use-pagination-class */ include_once 'libs/config.php'; include_once 'libs/Database.php'; include_once 'libs/Model.php'; include_once 'libs/pagination.php'; if(!empty($_GET["page"]) and is_numeric($_GET["page"])){ $page = htmlspecialchars(strip_tags($_GET["page"])); } else { $page = 1; } // news = table name / you page URL / current page / true or false for full query // its false i just use table name $pag = new pagination("news", URL."?page=", 3, $page, false); $pagination = $pag->pagination(); $data = $pag->data(); ?> <news> <?php foreach($data as $news){ ?> <header><h1><?=$news->title ?></h1> | <span><?=$news->date ?></span></header> <div> <?=$news->content ?> </div> <?php } ?> </news> <?=$pagination ?>