logo

PHP stránkovanie

PHP sa väčšinou používa na ukladanie a zobrazovanie údajov z databázy. Stránkovanie je možné vykonať pomocou ajaxu, ale tu sa to robí pomocou non-ajaxu. V tomto návode sa naučíme stránkovanie v PHP s MySQL . Urobme si krátky prehľad stránkovania s príkladom -

Je možné, že dotaz SQL SELECT môže vrátiť milióny záznamov späť. Nie je vhodné zobrazovať všetky záznamy na jednej stránke. Veľký zoznam záznamov na jednej stránke môže trvať tak dlho, kým sa stránka načíta, a tiež môže zabrať čas na nájdenie konkrétnych údajov. To môže spôsobiť (vedie k) zmätok v mysli používateľa. Preto si tieto záznamy rozdeľte na niekoľko strán podľa požiadavky užívateľa.

Čo teda môžeme urobiť, aby sme distribuovali tento veľký počet záznamov na počet strán? Metóda distribúcie jedného zoznamu na viacero stránok je známa ako Stránkovanie . Stránkovanie znamená zobrazenie výsledku dopytu na viacerých stránkach namiesto jednej stránky.

náhodné číslo c kód

Čo je stránkovanie?

Stránkovanie je spôsob zobrazenia údajov na viacerých stránkach namiesto ich vkladania na jednu stránku. Stránkovanie pomáha rozdeliť záznamy na niekoľko strán, vďaka čomu sú údaje čitateľnejšie a zrozumiteľnejšie.

Stránkovanie je bežnou úlohou vývojárov PHP. MySQL pomáha vývojárom vytvárať stránkovanie pomocou LIMIT klauzula, ktorá má dva argumenty. Prvý argument ako OFFSET a druhý argument je počet záznamov ktorý sa vráti z databázy.

Pozrime sa na niektoré výhody a nevýhody používania konceptu stránkovania v PHP -

Výhody stránkovania

  • Stránkovanie je veľmi užitočné vo veľkých projektoch, pretože robí webovú prácu profesionálnejšou. Nielen, že je profesionálnejšia, ale tiež robí webovú stránku oveľa rýchlejšou, presnejšou a efektívnejšou.
  • Pomocou stránkovania môžeme ušetriť čas načítania stránky rozdelením údajov na rôzne stránky. Ušetrí nás to od načítania veľkého množstva informácií naraz.
    Napríklad - Webová stránka s 1 000 obrázkami zaberie načítanie obrázkov dlhšie ako 50 obrázkov na každej webovej stránke.
    To znamená, že tisíce obrázkov potrebujú tisíce požiadaviek HTTP, v dôsledku ktorých by stránka nereagovala. Tento problém je vyriešený obmedzením množstva údajov pomocou stránkovania pomocou klauzuly LIMIT.
  • Používanie stránkovania zlepšuje používateľskú skúsenosť, príjmy z reklamy a skracuje čas načítania stránky.

Nevýhody stránkovania

Stránkovanie má síce niekoľko silných výhod, no napriek tomu sa mnohí vývojári vyhýbajú jeho používaniu. Spolu s niektorými silnými výhodami existuje aj niekoľko nevýhod stránkovania, ktoré sú nasledovné:

  • Samotné stránkovanie je v PHP veľká réžia, čo je jedna z nevýhod stránkovania. Ide o úplne réžiu, pretože ide o externú funkciu, ktorú možno implementovať za cenu vonkajších značiek, štýlu a logiky. Malý súbor údajov často ignorovaný na použitie stránkovania.
  • Stránkovanie môže spôsobiť nízke hodnotenie stránky vo vyhľadávači, pretože keď je stránka mimo domovskej stránky a vyžaduje niekoľko kliknutí, zvyčajne nezíska vysoké hodnotenie stránky.
  • Tiež obmedzuje počet odkazov, zdieľanie na sociálnych sieťach, celkový počet výsledkov, ktoré sa majú zobraziť na webovej stránke, a kotviaci text, ktorý stránka dostane, keď sú informácie rozdelené na niekoľko stránok.
Môžete sa vyhnúť použitiu techniky stránkovania úpravou štruktúry nastavenia navigácie.

Implementácia stránkovania pomocou PHP a MySQL

Na implementáciu stránkovania potrebujeme veľký súbor údajov, aby sme naň mohli použiť stránkovanie. Preto najprv musíme vytvoriť databázu a tabuľku. Potom poskytnite záznamy v tabuľke a začnite kódovať, aby ste vytvorili stránkovanie. Aby bolo možné údaje získané z databázy rozdeliť na niekoľko stránok.

Tu uvedieme dva príklady stránkovania. Prvý príklad je jednoduchý a základný príklad vytvárania stránkovania bez CSS, zatiaľ čo v druhom príklade vytvoríme stránkovanie atraktívnym spôsobom pomocou CSS a bootstrapu. Môžete vidieť výstup pre obe. Nižšie sú uvedené kroky na vytvorenie stránkovania;

dátum strojopisu

Jednoduché kroky na vytvorenie stránkovania -

  1. Vytvorte databázu a tabuľku. Uveďte zoznam záznamov do tabuľky.
  2. Pripojte sa k databáze MySQL.
  3. Vytvorte odkaz na stránkovanie na rozdelenie údajov na viacero stránok a pridajte ich na koniec tabuľky.
  4. Načítajte údaje z databázy a zobrazte ich na viacerých stránkach.

Postupujte podľa nižšie uvedených krokov jeden po druhom a vytvorte jednoduché stránkovanie.

Príklad 1

Nižšie uvedený kód je jednoduchý príklad stránkovania, ktoré sa vykonáva v PHP pomocou databázy MySQL. Rozdeľuje údaje získané z databázy na niekoľko stránok. V tomto príklade vytvoríme stránkovanie pre abecedy, ktoré sa zobrazia na niekoľkých stránkach.

Vytvorenie databázy

Najprv vytvorte databázu s názvom stránkovanie ako sme vytvorili a tabuľku v nej pomenovali abeceda . Vytvorte atribút podľa názvu id a abeceda a uveďte údaje v tabuľke.

PHP stránkovanie

Pripojenie k databáze

Pripojenie súboru PHP k databáze je povinná úloha. Aby ste mohli zobraziť údaje uložené v databáze na webovej stránke. Pre zobrazenie údajov na webovej stránke preto pripojte databázu vo svojom súbore PHP.

Kód pre pripojenie k databáze môžete napísať do rovnakého súboru, ako aj uložiť ho oddelene do iného súboru a zahrnúť ho do požadovaného súboru PHP. Kód pre pripojenie k databáze -

ascii tabuľka v c
 $conn = mysqli_connect('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); } 

V tomto návode používame mysqli rozšírenie. Všetky dotazy sú teda napísané vo formáte mysqli.

Získajte aktuálne číslo strany

Nižšie uvedený kód určuje číslo stránky, ktorú používateľ práve navštevuje. V prípade, že nie je k dispozícii, je predvolene nastavené číslo strany na 1.

 if (!isset ($_GET['page']) ) { $page = 1; } else { $page = $_GET['page']; } 

Vzorec pre stránkovanie

Pre stránkovanie je potrebné nastaviť limit počtu záznamov, ktoré sa majú zobraziť na stránke. Tu sme nastavili limit pre výsledok na stránku na 10, takže sa zobrazí na každej stránke, ako je uvedené nižšie -

Strana 1 - A až J (1-10)

Strana 2 - K až T (11-20)

Strana 3 - U až Z (21-26)

 $results_per_page = 10; $page_first_result = ($page-1) * $results_per_page; 

Získajte celkový počet strán

 $query = 'select *from alphabet'; $result = mysqli_query($conn, $query); $number_of_result = mysqli_num_rows($result); //determine the total number of pages available $number_of_page = ceil ($number_of_result / $results_per_page); 

Načítať údaje a zobraziť ich na webovej stránke

Nižšie uvedený kód sa používa na získanie údajov z databázy a zobrazenie na webových stránkach, ktoré sú podľa toho rozdelené.

 $query = &apos;SELECT *FROM alphabet LIMIT &apos; . $page_first_result . &apos;,&apos; . $results_per_page; $result = mysqli_query($conn, $query); //display the retrieved result on the webpage while ($row = mysqli_fetch_array($result)) { echo $row[&apos;id&apos;] . &apos; &apos; . $row[&apos;alphabet&apos;] . &apos;<br>&apos;; } 

Zobrazte odkaz na stránky v URL

Použitie tohto kódu URL webovej stránky sa zmení pre každú stránku.

 for($page = 1; $page<= $number_of_page; $page++) { echo ' <a href="index2.php?page=" . $page ''>&apos; . $page . &apos;  &apos;; </=>

Záverečný kódex

Teraz zložte všetky kódy do jedného súboru a urobte stránkovanie.

Súbor: Index2.php

ako previesť celé číslo na reťazec v jave
 Pagination <?php //database connection $conn = mysqli_connect('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); } //define total number of results you want per page $results_per_page = 10; //find the total number of results stored in the database $query = 'select *from alphabet'; $result = mysqli_query($conn, $query); $number_of_result = mysqli_num_rows($result); //determine the total number of pages available $number_of_page = ceil ($number_of_result / $results_per_page); //determine which page number visitor is currently on if (!isset ($_GET['page']) ) { $page = 1; } else { $page = $_GET['page']; } //determine the sql LIMIT starting number for the results on the displaying page $page_first_result = ($page-1) * $results_per_page; //retrieve the selected results from database $query = 'SELECT *FROM alphabet LIMIT ' . $page_first_result . ',' . $results_per_page; $result = mysqli_query($conn, $query); //display the retrieved result on the webpage while ($row = mysqli_fetch_array($result)) { echo $row['id'] . ' ' . $row['alphabet'] . '</br>&apos;; } //display the link of the pages in URL for($page = 1; $page<= $number_of_page; $page++) { echo ' <a href="index2.php?page=" . $page ''>&apos; . $page . &apos;  &apos;; } ?&gt; </=>

Výkon:

Pozrite si nižšie uvedený výstup pre vyššie uvedený príklad stránkovania -

PHP stránkovanie

Príklad 2

Nižšie uvedený príklad je ďalším príkladom stránkovania, v ktorom sme použili CSS spolu s HTML na zatraktívnenie zobrazenia webovej stránky. CSS robí webovú stránku kreatívnejšou a atraktívnejšou. Na druhej strane MySQL ukladá údaje do databázy. Takže sa môžete oveľa lepšie naučiť stránkovať.

Celý kód sme napísali do jedného súboru okrem databázového pripojenia. Preto vytvoríme dva súbory, teda connection.php a index1.php. Uložte oba súbory do .php rozšírenie. V nižšie uvedenom príklade sa naučíte vytvárať stránkovanie kreatívnejšie a atraktívnejšie.

    php:Vytvorené pre pripojenie k databázephp:Vytvorené pre stránkovanie

Súbor: connection.php

 

Súbor: index1.php

previesť reťazec na char java
 Pagination table { border-collapse: collapse; } .inline{ display: inline-block; float: right; margin: 20px 0px; } input, button{ height: 34px; } .pagination { display: inline-block; } .pagination a { font-weight:bold; font-size:18px; color: black; float: left; padding: 8px 16px; text-decoration: none; border:1px solid black; } .pagination a.active { background-color: pink; } .pagination a:hover:not(.active) { background-color: skyblue; } <?php // Import the file where we defined the connection to Database. require_once 'connection.php'; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page=1; } $start_from = ($page-1) * $per_page_record; $query = 'SELECT * FROM student LIMIT $start_from, $per_page_record'; $rs_result = mysqli_query ($conn, $query); ?> <br> <p>This page demonstrates the basic Pagination using PHP and MySQL. </p> <table class="table"> <tr> <th>ID</th> <th>Name</th> <th>College</th> <th>Score</th> </tr> <tbody> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </tbody> </table> <?php $query = 'SELECT COUNT(*) FROM student'; $rs_result = mysqli_query($conn, $query); $row = mysqli_fetch_row($rs_result); $total_records = $row[0]; echo '</br>&apos;; // Number of pages required. $total_pages = ceil($total_records / $per_page_record); $pagLink = &apos;&apos;; if($page&gt;=2){ echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active' href="index1.php?page=" .$i.''>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo ' next '; } ?> <input id="page" type="number" min="1" max placeholder required> Go function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p> <strong>Output:</strong> </p> <p>See the below output for above pagination example -</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-3.webp" alt="PHP Pagination"> <p>Note that code written inside the tag is used for styling and to give an attractive look to the table and pagination present inside the webpage. We also used bootstrap for this.</p> <h3>Explanation of code</h3> <p>Now, we will explain the code used for creating pagination.</p> <h3>Database creation</h3> <p>First of all, create a database named by <strong>pagination</strong> as we created and a table inside it named <strong>student</strong> . Create attribute by name <strong>Rank, Name, College,</strong> and <strong>Score</strong> , and provide at least 25 records in the table.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-4.webp" alt="PHP Pagination"> <h3>Database Connectivity</h3> <p>Connecting the PHP file to the database is a required task. In this tutorial, we are using <strong>mysqli</strong> extension. So, all the queries are written according to mysqli format.</p> <p>Database connectivity code can be written in the same file or you can also keep it separate into another file and include it to your required PHP file. Code for database connection-</p> <pre> $conn = mysqli_connect(&apos;localhost&apos;, &apos;root&apos;, &apos;&apos;); if (! $conn) { die(&apos;Connection failed&apos; . mysqli_connect_error()); } else { mysqli_select_db($conn, &apos;pagination&apos;); } </pre> <h3>Fetch data and display on webpage</h3> <p>As we have created dataset, now we need to fetch and display it to various webpages. The below code is used to retrieve the data from database and display on the webpages that are divided accordingly.</p> <h3>Fetch data</h3> <p>After establishing the database connection in &apos;connection.php&apos; file, we just need to import it into our code using require_once keyword. We will explicitly define the number of records per page to show.</p> <pre> require_once &apos;connection.php&apos;; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET[&apos;page&apos;])) { $page = $_GET[&apos;page&apos;]; } else { $page=1; } //determine the sql LIMIT starting number for the results on the displaying page $start_from = ($page-1) * $per_page_record; $query = &apos;SELECT * FROM student LIMIT $start_from, $per_page_record&apos;; $rs_result = mysqli_query ($conn, $query); </pre> <h3>Display data</h3> <p>This section is very simple. In this section, we iterate the loop over the records that we fetched and display each record stored in columns of the table.</p> <pre> <tr> <td></td> <td></td> <td></td> <td></td> </tr> </pre> <h3>Pagination Link creation</h3> <p>Now the most important code is pagination link creation. So, we will create the Previous, Next, and numeric links for pagination and add them to bottom of the table.</p> <pre> if($page&gt;=2) { echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active' href="index1.php?page=" .$i.''>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo ' next '; } < pre> <p>Without using CSS, the pagination will be created same as the screenshot below, which is similar to the example 1.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-5.webp" alt="PHP Pagination"> <p>After including CSS code into the index1.php file, the pagination will be looked like the screenshot below. In example 1, we have created simple pagination that was logically correct, but visually it is not so good. </p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-6.webp" alt="PHP Pagination"> <h3>Code for Random Moment</h3> <p>In case when the number of pages is too much, this code helps us for random moment. By entering the page number in the input field, a user can directly move to that page. This code is written in JavaScript.</p> <pre> function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p>Apart from all these codes, we have also included bootstrap into index1.php to make the table view good. This code is written inside the tag.</p> <pre> </pre> <hr></1)?1:page));></pre></$total_pages){></=$total_pages;></pre></1)?1:page));></$total_pages){></=$total_pages;>

Načítajte údaje a zobrazte ich na webovej stránke

Keď sme vytvorili množinu údajov, teraz ju musíme načítať a zobraziť na rôznych webových stránkach. Nižšie uvedený kód sa používa na získanie údajov z databázy a zobrazenie na webových stránkach, ktoré sú podľa toho rozdelené.

Načítať údaje

Po nadviazaní spojenia s databázou v súbore 'connection.php' ho stačí importovať do nášho kódu pomocou kľúčového slova require_once. Explicitne zadefinujeme počet záznamov na stránku, ktoré sa majú zobraziť.

 require_once &apos;connection.php&apos;; $per_page_record = 4; // Number of entries to show in a page. // Look for a GET variable page if not found default is 1. if (isset($_GET[&apos;page&apos;])) { $page = $_GET[&apos;page&apos;]; } else { $page=1; } //determine the sql LIMIT starting number for the results on the displaying page $start_from = ($page-1) * $per_page_record; $query = &apos;SELECT * FROM student LIMIT $start_from, $per_page_record&apos;; $rs_result = mysqli_query ($conn, $query); 

Zobrazenie údajov

Táto sekcia je veľmi jednoduchá. V tejto časti opakujeme slučku cez záznamy, ktoré sme načítali, a zobrazujeme každý záznam uložený v stĺpcoch tabuľky.

 <tr> <td></td> <td></td> <td></td> <td></td> </tr> 

Vytvorenie odkazu na stránkovanie

Teraz je najdôležitejším kódom vytvorenie odkazu na stránkovanie. Vytvoríme teda predchádzajúci, nasledujúci a číselný odkaz na stránkovanie a pridáme ich na koniec tabuľky.

 if($page&gt;=2) { echo &apos;  Prev  &apos;; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" &lt;a class = " active\' href="index1.php?page=" .$i.\'\'>&apos;.$i.&apos;  &apos;; } else { $pagLink .= &apos;  &apos;.$i.&apos;  &apos;; } }; echo $pagLink; if($page<$total_pages){ echo \' next \'; } < pre> <p>Without using CSS, the pagination will be created same as the screenshot below, which is similar to the example 1.</p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-5.webp" alt="PHP Pagination"> <p>After including CSS code into the index1.php file, the pagination will be looked like the screenshot below. In example 1, we have created simple pagination that was logically correct, but visually it is not so good. </p> <img src="//techcodeview.com/img/php-tutorial/93/php-pagination-6.webp" alt="PHP Pagination"> <h3>Code for Random Moment</h3> <p>In case when the number of pages is too much, this code helps us for random moment. By entering the page number in the input field, a user can directly move to that page. This code is written in JavaScript.</p> <pre> function go2Page() { var page = document.getElementById(&apos;page&apos;).value; page = ((page&gt;)?:((page<1)?1:page)); window.location.href="index1.php?page=" +page; } < pre> <p>Apart from all these codes, we have also included bootstrap into index1.php to make the table view good. This code is written inside the tag.</p> <pre> </pre> <hr></1)?1:page));></pre></$total_pages){></=$total_pages;>