Вставить функции разбивки на страницы в моей поисковой системе для навигации?

Как я могу:

  1. Вставьте page number 1, 2 &... и кнопку " Next, если у меня есть две или более страниц результатов, и если я на каждой странице, кроме последней страницы.

  2. Вставьте page number 1, 2 &... и кнопку " Previous, если у меня две или более страниц, и если я на каждой странице, кроме первой страницы.

  3. Вставьте First кнопку на каждой странице, кроме первой страницы, если у меня есть две или более страницы.

  4. Вставьте Last кнопку на каждой странице, кроме последней страницы, если у меня есть 2 или более страниц.

Я действительно новичок, поэтому мне нужно ваше руководство и помощь.

Это мой текущий код:

Код PHP:

if (!$page_number) 
 $page_number = 0;

 $results_per_page = 4;

 $next = $page_number + $results_per_page;
 $prev = $page_number - $results_per_page;

?>

Код HTML:

<title>
 Brandon Search Engine
 </title>
 
 
 
 <form method="GET" action="search.php">
 <table>
 <tbody><tr>
 <td>
 <h2>
 Brandon Search Engine
 </h2>
 </td>
 </tr>
 <tr>
 <td>
 
 

 <div id="suggestion">
 </div>
 </td>
 </tr>
 </tbody></table>
 
 
 <table>
 <tbody><tr>
 <td>
 <!--?php
 //count 
 $count_sql = "SELECT count(*) as c FROM searchengine WHERE title LIKE '%" . mysqli_real_escape_string($con,$query) . "%' OR keywords LIKE '%" . mysqli_real_escape_string($con,$query) . "%' OR link LIKE '%" . mysqli_real_escape_string($con,$query) . "%' ";
 $search_count = mysqli_fetch_array(mysqli_query($con,$count_sql));
 $number_of_result = $search_count['c'];
 //SQL query
 $stmt = "SELECT * FROM searchengine WHERE title LIKE '%" . mysqli_real_escape_string($con,$query) . "%' OR keywords LIKE '%" . mysqli_real_escape_string($con,$query) . "%' OR link LIKE '%" . mysqli_real_escape_string($con,$query) . "%' LIMIT " . $page_number . " , $results_per_page";
 $result = mysqli_query($con,$stmt) or die(mysqli_error($con));
 //$number_of_result = mysqli_num_rows($result);
 $x++;
 if($x==1)
 if ($number_of_result < 1) {
 echo "<b-->No results found!";
 echo "<p>";
 echo "Your search - <b>$query</b>" . " - did not match any documents. Please try different keywords.";
 } elseif ($number_of_result > 1) {
 echo "<b>$number_of_result results found!</b>";
 echo "</p><p>";
 //results found here and display them
 $index = 1;
 while (($row = \mysqli_fetch_assoc($result)) && ($index < 10)) {//10 results per page
 $title = $row["title"];
 $description = $row["description"];
 $link = $row["link"];
 echo "</p><div id="search-result">";
 echo "<div id="title"><a href="$link" target="_blank">" . $title . "</a></div>";
 //echo "";
 echo "<div id="link"><small>" . $link . "</small></div>";
 //echo "<p>";
 echo "</p><div id="description"><small>" . $description . "</small></div>";
 echo "</div>";
 echo "";
 $index++;
 }
 } elseif ($number_of_result == 1) {
 echo "<b>$number_of_result result found!</b>";
 echo "<p>";
 //results found here and display them
 $index = 1;
 while (($row = \mysqli_fetch_assoc($result)) && ($index < 10)) {//10 results per page
 $title = $row["title"];
 $description = $row["description"];
 $link = $row["link"];
 echo "</p><div id="search-result">";
 echo "<div id="title"><a href="$link" target="_blank">" . $title . "</a></div>";
 //echo "";
 echo "<div id="link"><small>" . $link . "</small></div>";
 echo "";
 echo "<div id="description"><small>" . $description . "</small></div>";
 echo "</div>";
 echo "";
 $index++;
 }
 }
 ?>
 </td>
 </tr>
 <tr>
 <td>
 
 <div id="page-number">
 Select Page Number:
 <!--?php

 //ie if 35 results are therer then we require 4 pages that are 0 to max_page_number
 //current page number is equal to page_number

 $max_page_number = ceil($number_of_result / $results_per_page);
 //echo $max_page_number;
 echo "<ul-->";
 //both the condition are not the neccesary
 if ($max_page_number > 2) { // if more than 2 pages 

 if ($page_number > 0 ) { //Previous
 echo "<li id="search-page-number">";
 echo "<a href="search.php?q=$query&page=" .($page_number"="" -="" $results_per_page)."="" target="_blank">Previous</a>";
 echo "</li>";
 }

 for($index = 0 ; $index < $max_page_number ; $index++) {
 echo "<li id="search-page-number">";
 echo "<a href="search.php?q=$query&page=" .($index"="" *="" $results_per_page)."="" target="_blank">";
 echo ($index + 1) . "</a>";
 echo "</li>";
 }

 if (($page_number + $results_per_page) < $number_of_result ) { //Next
 echo "<li id="search-page-number">";
 echo "<a href="search.php?q=$query&page=" .($page_number"="" +="" $results_per_page)."="" target="_blank">Next</a>";
 echo "</li>";
 }

 } elseif (($max_page_number == 2 ) ) {
 echo "<li id="search-page-number">";
 echo "<a 10="" href="search.php?q=$query&page=" .($page_number"="=" 0""="" ?="" :="" 0)."="" target="_blank">".($page_number == 0 ? "Next":"Previous" )."</a>";
 echo "</li>";

 } elseif (($max_page_number == 1 ) ) {
 echo "<li id="search-page-number">";
 echo "<a href="search.php?q=$query&page=0" target="_blank">1</a>";
 echo "</li>";
 }

 echo "";

 ?>
 </div>
 </td>
 </tr>
 <tr>
 <td>
 To insert your site in result fill in the form at <a href="insert.php" target="_blank">here</a>.
 </td>
 </tr>
 </tbody></table>
 </form>

Заранее спасибо.

1 ответ

Этот код может помочь вам:

Вы должны определить количество элементов на странице, количество ссылок и установить текущую страницу.

<!--?php
class page {

public $element_per_page = 10,
 $nb_links = 2,
 $nb_page = 0,
 $page = 1;

public function display_page() {
 $data = array(); // with many elements
 $this--->nb_element = count($data);
 $this->nb_page = ceil($this->nb_element / $this->element_per_page);

 if (!empty($_GET['p']) && $_GET['p'] > 0 && $_GET['p'] <= $this->nb_page) {
 $this->page = $_GET['p'];
 }

 $this->getPagination();
 }

 public function getPagination() { 

 $pages = array(); 

 if ($this->page == $this->nb_links+2) { 
 $pages[]['value'] = 1; 
 } else if($this->page > $this->nb_links+2) { 
 $pages[]['value'] = 1; 
 $pages[]['value'] = '…'; 
 } 

 $start = $this->page-$this->nb_links; 

 if ($start < 1) { 
 $start = 1; 
 } 

 for ($i=$start; $i<=$this->page+$this->nb_links; $i++) { 
 if ($i>0 && $i<=$this->nb_page) { 
 $pages[$i]['value'] = $i; 
 if ($this->page == $i) { 
 $pages[$i]['selected'] = 'selected'; 
 } 
 } else { 
 break; 
 } 
 } 

 if ($this->page < $this->nb_page-$this->nb_links-1) { 
 $pages[]['value'] = '…'; 
 } 

 if ($this->page <= $this->nb_page-($this->nb_links+1)) { 
 $pages[]['value'] = $this->nb_page; 
 } 

 return $pages; 

 }

}

licensed under cc by-sa 3.0 with attribution.