logo

PHP sivutus

PHP:tä käytetään enimmäkseen tietojen tallentamiseen ja näyttämiseen tietokannasta. Sivutus voidaan tehdä ajaxilla, mutta tässä tämä tehdään ei-ajaxilla. Tässä opetusohjelmassa opimme sivutus PHP:llä MySQL:llä . Katsotaanpa lyhyesti sivutusta esimerkin avulla -

bash-taulukot

On mahdollista, että SQL SELECT -kysely palauttaa miljoonia tietueita takaisin. Ei ole hyvä idea näyttää kaikkia tietueita yhdellä sivulla. Laaja tietueluettelo yhdellä sivulla voi viedä niin paljon aikaa sivun lataamiseen ja myös tiettyjen tietojen etsimiseen. Tämä voi aiheuttaa (johtaa) hämmennystä käyttäjän mielessä. Siksi jaa nämä tietueet useille sivuille käyttäjän vaatimusten mukaan.

Joten mitä voimme tehdä jakaaksemme nämä suuret tietuemäärät sivumääränä? Menetelmä yhden luettelon jakamiseksi useille sivuille tunnetaan nimellä Sivunumerointi . Sivutuksella tarkoitetaan kyselyn tuloksen näyttämistä useilla sivuilla yhden sivun sijaan.

Mikä on sivutus?

Sivutus on tapa näyttää tiedot useilla sivuilla sen sijaan, että ne laittaisivat ne yhdelle sivulle. Sivutus auttaa jakamaan tietueet useille sivuille, mikä tekee tiedoista luettavampaa ja ymmärrettävämpää.

Sivutus on yleinen tehtävä PHP-kehittäjille. MySQL auttaa kehittäjää luomaan sivutusta käyttämällä RAJA lauseke, jossa on kaksi argumenttia. Ensimmäinen argumentti as OFFSET ja toinen argumentti on tietueiden määrä joka palaa tietokannasta.

Katsotaanpa joitain etuja ja haittoja sivutuskonseptin käyttämisestä PHP:ssä -

Sivuttamisen edut

  • Sivutus on erittäin hyödyllinen suurissa projekteissa, koska se tekee verkkotyöstä ammattimaisempaa. Ei vain ammattimaisempi, vaan se myös saa verkkosivun toimimaan paljon nopeammin, täsmällisemmin ja tehokkaammin.
  • Sivutustoiminnon avulla voimme säästää sivun latausaikaa jakamalla tiedot eri sivuille. Se säästää meitä lataamasta paljon tietoa kerralla.
    Esimerkiksi - 1000 kuvaa sisältävän verkkosivun kuvien lataaminen kestää kauemmin kuin kullakin verkkosivulla olevien 50 kuvan lataaminen.
    Tämä tarkoittaa, että tuhannet kuvat tarvitsevat tuhansia HTTP-pyyntöjä, mikä tekisi sivusta reagoimattoman. Tämä ongelma ratkaistaan ​​rajoittamalla tiedon määrää sivutuksen avulla LIMIT-lausekkeen avulla.
  • Sivuttamisen käyttö parantaa käyttökokemusta, mainostuloja ja lyhentää sivun latausaikaa.

Sivuttamisen haitat

Vaikka sivutustoiminnolla on joitain tehokkaita etuja, monet kehittäjät välttelevät sen käyttöä. Joidenkin voimakkaiden etujen lisäksi sivutuksilla on myös muutamia haittoja, jotka ovat seuraavat:

  • Sivutus itsessään on PHP:ssä suuri ylimääräinen kustannus, mikä on yksi sivutuksen haitoista. Se on täysin ylimääräinen, koska se on ulkoinen ominaisuus, joka voidaan toteuttaa ylimääräisen merkinnän, tyylin ja logiikan kustannuksella. Pieni tietojoukko jätetään usein huomiotta sivutuksen käyttämiseksi.
  • Sivutus voi aiheuttaa alhaisen sivusijoituksen hakukoneessa, koska kun sivu on poissa kotisivulta ja vaatii useita napsautuksia, se ei yleensä saa korkeaa sivusijoitusta.
  • Se rajoittaa myös linkkien määrää, sosiaalisia jakoja, verkkosivulla näkyvien tulosten kokonaismäärää ja ankkuritekstiä, jonka sivu saa, kun tiedot jaetaan useille sivuille.
Voit välttää sivutustekniikan käytön muuttamalla navigointiasetuksien rakennetta.

Sivuttamisen toteutus PHP:llä ja MySQL:llä

Sivutuksen toteuttamiseksi tarvitsemme suuren tietojoukon sivutuksen soveltamiseksi siihen. Siksi meidän on ensin luotava tietokanta ja taulukko. Anna sen jälkeen taulukon tietueet ja aloita koodaus luodaksesi sivutus. Jotta tietokannasta haetut tiedot voidaan jakaa useille sivuille.

Tässä esittelemme kaksi esimerkkiä sivutuksesta. Ensimmäinen esimerkki on yksinkertainen ja perusesimerkki sivutuksen luomisesta ilman CSS:ää, kun taas toisessa esimerkissä luomme sivutuksen houkuttelevalla tavalla CSS:n ja bootstrapin avulla. Näet molempien tulosten. Alla on annetut vaiheet sivujen luomiseen;

Yksinkertaiset vaiheet sivujen luomiseen -

  1. Luo tietokanta ja taulukko. Anna luettelo tietueista taulukkoon.
  2. Yhdistä MySQL-tietokantaan.
  3. Luo sivutuslinkki jakaaksesi tiedot useille sivuille ja lisääksesi ne taulukon alaosaan.
  4. Hae tiedot tietokannasta ja näytä ne useille sivuille.

Noudata alla olevia vaiheita yksitellen ja luo yksinkertainen sivutus.

Esimerkki 1

Alla oleva koodi on yksinkertainen esimerkki sivutuksesta, joka tehdään PHP:ssä MySQL-tietokannan avulla. Se jakaa tietokannasta haetut tiedot useille sivuille. Tässä esimerkissä luomme aakkosten sivuttamisen useille sivuille.

Tietokannan luominen

Luo ensin tietokanta nimeltä sivunumerointi sellaisena kuin loimme ja sen sisällä oleva taulukko nimettiin aakkoset . Luo attribuutti nimen mukaan id ja aakkoset ja anna taulukon tiedot.

PHP sivutus

Tietokantayhteys

PHP-tiedoston yhdistäminen tietokantaan on pakollinen tehtävä. Jotta voit näyttää tietokantaan tallennetut tiedot verkkosivulle. Siksi yhdistä PHP-tiedostosi tietokanta näyttääksesi tietoja verkkosivulla.

Voit kirjoittaa tietokantayhteyskoodin samaan tiedostoon sekä pitää sen erillään toisessa tiedostossa ja sisällyttää sen vaadittuun PHP-tiedostoon. Tietokantayhteyden koodi -

 $conn = mysqli_connect('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); } 

Tässä opetusohjelmassa käytämme mysqli laajennus. Joten kaikki kyselyt kirjoitetaan mysqli-muodossa.

Hanki nykyinen sivunumero

Alla oleva koodi määrittää sivunumeron, jolla käyttäjä tällä hetkellä vierailee. Jos sitä ei ole, sivunumeroksi asetetaan oletusarvoisesti 1.

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

Kaava sivutusta varten

Sivutusta varten sinun on asetettava sivulla näytettävien tietueiden lukumäärän raja. Tässä asetimme sivukohtaisten tulosten rajaksi 10, joten se näkyy jokaisella sivulla alla kuvatulla tavalla -

Sivu 1 – A–J (1–10)

vijay-elokuvanäyttelijä

Sivu 2 - K - T (11-20)

Sivu 3 – U–Z (21–26)

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

Hae sivujen kokonaismäärä

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

Hae tiedot ja näytä verkkosivulla

Alla olevaa koodia käytetään tietojen hakemiseen tietokannasta ja näyttämiseen verkkosivuilla, jotka on jaettu vastaavasti.

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

Näytä sivujen linkki URL-osoitteessa

Tämän koodin käyttäminen verkkosivun URL-osoite muuttuu jokaisella sivulla.

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

Lopullinen koodi

Laita nyt kaikki koodit yhteen tiedostoon, joka on valmis sivutusta varten.

Tiedosto: Index2.php

 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; </=>

Lähtö:

Katso alla oleva tulos yllä olevasta sivutusesimerkistä -

PHP sivutus

Esimerkki 2

Alla oleva esimerkki on toinen esimerkki sivutuksesta, jossa käytimme CSS:ää yhdessä HTML:n kanssa tehdäksemme verkkosivun näkymästä houkuttelevamman. CSS tekee verkkosivusta luovemman ja houkuttelevamman. Toisaalta MySQL tallentaa tiedot tietokantaan. Joten voit oppia sivuttamisen paljon paremmin.

Olemme kirjoittaneet koko koodin yhteen tiedostoon tietokantayhteyksiä lukuun ottamatta. Siksi luomme kaksi tiedostoa, eli connection.php ja index1.php. Tallenna molemmat tiedostot .php laajennus. Alla olevassa esimerkissä opit luomaan luovampaa ja houkuttelevampaa sivutusta.

    php:Luotu tietokantayhteyksiä vartenphp:Luotu sivutusta varten

Tiedosto: connection.php

 

Tiedosto: index1.php

 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;>

Hae tiedot ja näytä verkkosivulla

Koska olemme luoneet tietojoukon, meidän on nyt noudettava ja näytettävä se useille verkkosivuille. Alla olevaa koodia käytetään tietojen hakemiseen tietokannasta ja näyttämiseen verkkosivuilla, jotka on jaettu vastaavasti.

Hae tiedot

Kun tietokantayhteys on muodostettu 'connection.php'-tiedostossa, meidän tarvitsee vain tuoda se koodiimme käyttämällä request_once -avainsanaa. Määritämme erikseen näytettävien tietueiden määrän sivulla.

merkkijonossa
 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); 

Näytä tiedot

Tämä osio on hyvin yksinkertainen. Tässä osiossa toistamme silmukan haettujen tietueiden yli ja näytämme jokaisen taulukon sarakkeisiin tallennetun tietueen.

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

Sivutuslinkin luominen

Nyt tärkein koodi on sivutuslinkin luominen. Joten luomme Edellinen, Seuraava ja numeeriset linkit sivutusta varten ja lisäämme ne taulukon alaosaan.

 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;>