Intereting Posts
Ограничение количества символов в строке привязка регулярного выражения к параметру PDO в инструкции PDO Заполнение динамического поля выбора с помощью значений mysql Swiftmailer удаляет вложение после отправки Symfony 2 / Doctrine 2: два объекта для одной таблицы, используйте один в пользу другого Где хранятся переменные $ _SESSION? Отобразить строку, содержащую HTML в шаблоне ветви Сервер не желает выполнять. LDAP в PHP Ведение всех значений дубликатов ключей при разборе файла .ini Идентификаторы сеанса PHP – как они генерируются? Как я могу перенаправить домой, когда пользователь нажимает кнопку «Назад» после выхода из системы? Как искать файл CSV с помощью php, проверяя, имеет ли место дату между двумя диапазонами Проводка с IE8 на PHP дает пустой $ _POST Пакетные вызовы с помощью Facebook Graph API и PHP Сортировка массива массива объектов в PHP по значению ключа

Загрузочная разбивка страниц с использованием PHP и MySQL

Я как бы новичок в Bootstrap, я пытаюсь реализовать разбиение на страницы на одном из разделов моей страницы, чтобы правильно представлять данные. Кто-нибудь может помочь?

Ниже приведен снимок того, как выглядит код прямо сейчас. Как я могу реализовать разбиение на страницы так, чтобы отображалось только 10 записей? Благодарю.

<section class="success" id="all-confessions"> <div class="container"> <div class="row"> <div class="col-lg-12 text-center"> <h2>All Confessions</h2> <hr class="star-light"> </div> </div> <div class="row"> <div class="row text-left"> <?php $allconfession = mysql_query("SELECT * FROM collection ORDER BY date DESC"); while($result2 = mysql_fetch_array($allconfession)) { $id = $result2['id']; ?> <div class="col-md-3 col-md-offset-1"> <h5>#<?php echo $id; ?></h5> </div> <div class="col-md-10 col-md-offset-1"> <p class="para-confess"> <?php echo $result2['type'] ." from ". $result2['college'] ." of ". $result2['department'] ." confessed ". $result2['confession']; ?> </p> <div class="text-left"> <?php if(isset($_COOKIE['uname'])) { ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="text" name="cid" style="display: none;" value="<?php echo $id; ?>"> <button type="submit" class="btn btn-success fa fa-thumbs-up" name="like"> Cool</button> <button type="submit" class="btn btn-warning fa fa-thumbs-down" name="dislike"> WTF</button> </form> <?php } ?> </div> <div class="text-right"> <i class="fa fa-thumbs-o-up"> <?php $likes = mysql_query("SELECT COUNT(*) FROM activity WHERE cid = $id AND ld = 1"); $alikes = mysql_fetch_row($likes); echo $alikes[0]; ?> </i> &nbsp; <i class="fa fa-thumbs-o-down"> <?php $dislikes = mysql_query("SELECT COUNT(*) FROM activity WHERE cid = $id AND ld = 0"); $adislikes = mysql_fetch_row($dislikes); echo $adislikes[0]; ?> </i> </div> <hr/> </div> <?php } ?> </div> </div> </div> </section> 

Related of "Загрузочная разбивка страниц с использованием PHP и MySQL"

Ты довольно далеко.

Как минимум, вам нужно сделать следующее.

  1. Вам нужно создать переменную, которая определяет количество элементов, отображаемых на странице.
  2. Вам нужно принять эту переменную и умножить ее на номер страницы, чтобы количество записей было смещено в вашем запросе.
  3. Вам нужно компенсировать результаты запроса, используя номер, полученный из приведенного выше расчета, а также ограничить запрос количеством отображаемых элементов.
  4. Вам нужно подсчитать количество общих элементов и разделить их на количество элементов на странице, чтобы общее количество страниц отображалось в разбивке на страницы.

Вот какой простой код разбивки на страницы, который я использовал много раз в сочетании с Bootstrap.

http://www.a2zwebhelp.com/php-mysql-pagination

Просто опустите стили и примените классы Bootstrap к элементам. Но вы не можете просто добавить статический html и ожидать, что он будет работать без какой-либо логики бэкэнд. Bootstrap предоставляет только способ стилизации страницы, но вы должны ее построить.

  $page_no=$_POST['page_no'];//page number $limit=$_POST['limit'];//number of data $limit1 = $page_no*$limit; //calculate the limit $start = $limit1-$limit; //calculate the start point $sql = "select * from example limit $start,$limit";// query 

используйте код, который поможет

Я столкнулся с такой же ситуацией, последовал за статьей и скорректировал ее для моего использования. Вот что вам нужно для вашего кода.

Протестировано с помощью Bootstrap v3.3.5.

Прежде всего : вы должны изменить свою mysql_query() . Это расширение было устарело в PHP 5.5.0, и оно было удалено в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL. Подробнее читайте здесь .

При этом перейдем к нашему PHP-коду.

PHP (обрабатывает запросы MySQL и генерирует HTML-код разбивки на страницы)
Примечание. Вы можете изменить целевую страницу с помощью переменной $targetpage .

 //PAGINATION// $sql = mysqli_query("select * from collection"); $total = mysql_num_rows($sql); $adjacents = 3; $targetpage = "$_SERVER['PHP_SELF']"; //your file name $limit = 10; //how many items to show per page if(isset($_GET['page'])) { $page = $_GET['page']; }else{ $page = 0; } if($page){ $start = ($page - 1) * $limit; //first item to display on this page }else{ $start = 0; } /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is current page - 1 $next = $page + 1; //next page is current page + 1 $lastpage = ceil($total/$limit); //lastpage. $lpm1 = $lastpage - 1; //last page minus 1 $sql2 = "SELECT * FROM collection"; $sql2 .= " order by date limit $start ,$limit "; $sql_query = mysqli_query($sql2); /* CREATE THE PAGINATION */ $pagination = ""; if($lastpage > 1) { $pagination .= "<ul class='pagination'>"; if ($page > $counter+1) { $pagination.= "<li><a href=\"$targetpage?page=$prev\"><</a></li>"; } if ($lastpage < 7 + ($adjacents * 2)) { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } $pagination.= "<li>...</li>"; $pagination.= "<li><a href=\"$targetpage?page=$lpm1\">$lpm1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=$lastpage\">$lastpage</a></li>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<li><a href=\"$targetpage?page=1\">1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=2\">2</a></li>"; $pagination.= "<li>...</li>"; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } $pagination.= "<li>...</li>"; $pagination.= "<li><a href=\"$targetpage?page=$lpm1\">$lpm1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=$lastpage\">$lastpage</a></li>"; } //close to end; only hide early pages else { $pagination.= "<li><a href=\"$targetpage?page=1\">1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=2\">2</a></li>"; $pagination.= "<li>...</li>"; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } } } //next button if ($page < $counter - 1) $pagination.= "<li><a href=\"$targetpage?page=$next\">></a></li>"; else $pagination.= ""; $pagination.= "</ul>\n"; } 

Теперь, когда у нас есть разбиение на страницы, просто назовите его, где хотите:

HTML

  <div class="row"> <div class="col-md-12 text-center"> <?php echo $pagination ?> </div> </div> 

Ваши элементы <a> получат href=targetPage?page=pageNumber

ИСТОЧНИК : http://www.a2zwebhelp.com/php-mysql-pagination

Надеюсь, это поможет!

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

вещи, с которыми я столкнулся,

  1. использовать последние api из Google
  2. Файлы html, css и js предоставляются сайтом
  3. они обеспечивают разбивку на страницы и ответы на все, что вы хотите
  4. наиболее важные данные данных принимают данные в формате массива, поэтому, когда вы эхо-данные из php используете jason-объект и связываете все данные в массиве, а затем строки, которые хотите заполнить

Во-первых, узнайте что-нибудь о PDO http://php.net/manual/en/book.pdo.php . В моем решении я предполагаю, что вы используете PDO.

Первое, что вам нужно сделать, это определить, сколько строк на самом деле находится в БД.

 $nbOfResults = $pdo->query('select count(*) from collection')->fetchColumn(); 

Затем установите ограничение на количество объектов на странице.

 $entitiesPerPage = 10; 

Теперь давайте определим, сколько страниц должно быть. Сначала я делю количество результатов по entityPerPage. Предположим, что есть 202 результата. Разделение его на 10 (сущностей на страницу) приведет к 20 страницам (отбрасывается в int). Однако осталось еще 2 объекта. Вот почему я должен проверить modulo и добавить еще одну страницу, если это необходимо.

 $nbOfPages = intval($nbOfResults / $entitiesPerPage); if( ($entitiesPerPage % $nbOfResults) !== 0 ) { $nbOfPages += 1 } 

Теперь мы готовы построить разбивку на страницы. Но сначала нам нужно иметь переменную, содержащую текущую страницу.

 $currentPage = $_GET['page']; 

Или более элегантным способом.

 $currentPage = filter_input(INPUT_GET, 'page', FILTER_SANITIZE_NUMBER_INT); 

Однако, если нет какой-либо страницы, предположим, что мы находимся на первой странице.

 if(!$currentPage) { $currentPage = 1 } 

Хорошо, теперь пришло время для массива, содержащего информацию разбивки на страницы.

 $pagination = []; if ($currentPage !== 1) { $pagination[] = [ 'page' => 'Previous', 'link' => '?page=' . ($currentPage - 1), 'active' => false, ]; } for($i = 1; $i <= $nbOfPages; $i++) { $pagination[] = [ 'page' => $i, 'link' => '?page=' . $i, 'active' => ( $i === $currentPage ), ]; } if ($currentPage !== $nbOfPages) { $pagination[] = [ 'page' => 'Next', 'link' => '?page=' . ($currentPage + 1), 'active' => false, ]; } 

И, наконец, запрос для получения результатов на текущей странице.

 $query = 'SELECT * FROM collection ORDER BY date DESC LIMIT ? OFFSET ?'; $sth = $dbh->prepare($query); $sth->execute(array($entitiesPerPage, ( $currentPage - 1 ) * $entitiesPerPage))); 

Теперь все, что вам нужно сделать, это перебрать переменную $ pagination и напечатать правильный загрузочный HTML-код.

Для новых пользователей …

 $ppcompletexxkc = "yes"; $restt = $db->prepare('SELECT COUNT(*) FROM shop WHERE complete = :complete'); $restt->execute(array(':complete' => $ppcompletexxkc )); $total = $restt->fetchColumn(); $adjacents = 3; $targetpage = "category.php"; //your file name $limit = 1; //how many items to show per page $page = $_GET['page']; if($page){ $start = ($page - 1) * $limit; //first item to display on this page }else{ $start = 0; } /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is current page - 1 $next = $page + 1; //next page is current page + 1 $lastpage = ceil($total/$limit); //lastpage. $lpm1 = $lastpage - 1; //last page minus 1 $lksmttba = $db->prepare('SELECT * FROM shop WHERE complete = :complete ORDER BY id ASC LIMIT :start ,:limit '); $lksmttba->execute(array(':complete' => $ppcompletexxkc, ':start' => $start, ':limit' => $limit )); /* CREATE THE PAGINATION */ $pagination = ""; if($lastpage > 1) { $pagination .= "<div class='pagination1'> <ul>"; if ($page > $counter+1) { $pagination.= "<li><a href=\"$targetpage?page=$prev\">prev</a></li>"; } if ($lastpage < 7 + ($adjacents * 2)) { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } $pagination.= "<li>...</li>"; $pagination.= "<li><a href=\"$targetpage?page=$lpm1\">$lpm1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=$lastpage\">$lastpage</a></li>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<li><a href=\"$targetpage?page=1\">1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=2\">2</a></li>"; $pagination.= "<li>...</li>"; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } $pagination.= "<li>...</li>"; $pagination.= "<li><a href=\"$targetpage?page=$lpm1\">$lpm1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=$lastpage\">$lastpage</a></li>"; } //close to end; only hide early pages else { $pagination.= "<li><a href=\"$targetpage?page=1\">1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=2\">2</a></li>"; $pagination.= "<li>...</li>"; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } } } //next button if ($page < $counter - 1) $pagination.= "<li><a href=\"$targetpage?page=$next\">next</a></li>"; else $pagination.= ""; $pagination.= "</ul></div>\n"; } echo $pagination; while($readpostv=$lksmttba->fetch(PDO::FETCH_ASSOC)){ echo' '.$readpostv['img1'].''; } echo $pagination; в $ppcompletexxkc = "yes"; $restt = $db->prepare('SELECT COUNT(*) FROM shop WHERE complete = :complete'); $restt->execute(array(':complete' => $ppcompletexxkc )); $total = $restt->fetchColumn(); $adjacents = 3; $targetpage = "category.php"; //your file name $limit = 1; //how many items to show per page $page = $_GET['page']; if($page){ $start = ($page - 1) * $limit; //first item to display on this page }else{ $start = 0; } /* Setup page vars for display. */ if ($page == 0) $page = 1; //if no page var is given, default to 1. $prev = $page - 1; //previous page is current page - 1 $next = $page + 1; //next page is current page + 1 $lastpage = ceil($total/$limit); //lastpage. $lpm1 = $lastpage - 1; //last page minus 1 $lksmttba = $db->prepare('SELECT * FROM shop WHERE complete = :complete ORDER BY id ASC LIMIT :start ,:limit '); $lksmttba->execute(array(':complete' => $ppcompletexxkc, ':start' => $start, ':limit' => $limit )); /* CREATE THE PAGINATION */ $pagination = ""; if($lastpage > 1) { $pagination .= "<div class='pagination1'> <ul>"; if ($page > $counter+1) { $pagination.= "<li><a href=\"$targetpage?page=$prev\">prev</a></li>"; } if ($lastpage < 7 + ($adjacents * 2)) { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } } elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some { //close to beginning; only hide later pages if($page < 1 + ($adjacents * 2)) { for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } $pagination.= "<li>...</li>"; $pagination.= "<li><a href=\"$targetpage?page=$lpm1\">$lpm1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=$lastpage\">$lastpage</a></li>"; } //in middle; hide some front and some back elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) { $pagination.= "<li><a href=\"$targetpage?page=1\">1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=2\">2</a></li>"; $pagination.= "<li>...</li>"; for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } $pagination.= "<li>...</li>"; $pagination.= "<li><a href=\"$targetpage?page=$lpm1\">$lpm1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=$lastpage\">$lastpage</a></li>"; } //close to end; only hide early pages else { $pagination.= "<li><a href=\"$targetpage?page=1\">1</a></li>"; $pagination.= "<li><a href=\"$targetpage?page=2\">2</a></li>"; $pagination.= "<li>...</li>"; for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page) $pagination.= "<li><a href='#' class='active'>$counter</a></li>"; else $pagination.= "<li><a href=\"$targetpage?page=$counter\">$counter</a></li>"; } } } //next button if ($page < $counter - 1) $pagination.= "<li><a href=\"$targetpage?page=$next\">next</a></li>"; else $pagination.= ""; $pagination.= "</ul></div>\n"; } echo $pagination; while($readpostv=$lksmttba->fetch(PDO::FETCH_ASSOC)){ echo' '.$readpostv['img1'].''; } echo $pagination;