PHP galvenokārt tiek izmantots datu glabāšanai un attēlošanai no datu bāzes. Lappuses var veikt ar ajax, bet šeit tas tiek darīts ar ne ajax. Šajā apmācībā mēs uzzināsim, lappuse PHP ar MySQL . Īsi apskatīsim lappušu piešķiršanu ar piemēru -
Iespējams, ka SQL SELECT vaicājums var atgriezt miljoniem ierakstu. Nav ieteicams visus ierakstus attēlot vienā lapā. Liels ierakstu saraksts vienā lapā var aizņemt tik daudz laika, lai ielādētu lapu, kā arī laiks, lai atrastu konkrētus datus. Tas var izraisīt (izraisīt) apjukumu lietotāja prātā. Tāpēc sadaliet šos ierakstus vairākās lapās atbilstoši lietotāja prasībām.
Tātad, ko mēs varam darīt, lai izplatītu šo lielo ierakstu skaitu lappušu skaitā? Viena saraksta sadalīšanas vairākās lapās metode ir pazīstama kā Lapu šķirošana . Lapošana attiecas uz vaicājuma rezultāta rādīšanu vairākās lapās, nevis vienā lapā.
Kas ir lappuse?
Lapu šķirošana ir veids, kā parādīt datus vairākās lapās, nevis ievietot tos vienā lapā. Lapu šķirošana palīdz sadalīt ierakstus vairākās lapās, kas padara datus lasāmākus un saprotamākus.
Lapu šķirošana ir parasts PHP izstrādātāju uzdevums. MySQL palīdz izstrādātājam izveidot lappušu, izmantojot LIMIT klauzulu, kurā ir divi argumenti. Pirmais arguments kā OFFSET un otrs arguments ir ierakstu skaits kas atgriezīsies no datu bāzes.
verilog lietas paziņojums
Apskatīsim dažas priekšrocības un trūkumus, izmantojot lappušu veidošanas koncepciju PHP -
Lapu kārtošanas priekšrocības
- Lapu ievietošana ir ļoti noderīga liela mēroga projektos, jo tā padara tīmekļa darbu profesionālāku. Tas padara tīmekļa lapu ne tikai profesionālāku, bet arī daudz ātrāku, precīzāku un efektīvāku.
- Ar lappuses palīdzību varam ietaupīt lapas ielādes laiku, sadalot datus dažādās lapās. Tas pasargā mūs no daudz informācijas vienlaikus.
Piemēram - Tīmekļa lapā ar 1000 attēliem attēlu ielāde būs ilgāka par 50 attēliem katrā tīmekļa lapā.
Tas nozīmē, ka tūkstošiem attēlu ir nepieciešami tūkstošiem HTTP pieprasījumu, kas padarītu lapu nereaģējošu. Šī problēma tiek atrisināta, ierobežojot datu apjomu ar lappušu kārtošanas palīdzību, izmantojot LIMIT klauzulu. - Lapu šķirošanas izmantošana uzlabo lietotāja pieredzi, reklāmas ieņēmumus un samazina lapas ielādes laiku.
Paginācijas trūkumi
Lai gan ir dažas spēcīgas lappuses priekšrocības, tomēr daudzi izstrādātāji izvairās to izmantot. Papildus dažām spēcīgām priekšrocībām lappušu veidošanai ir arī daži trūkumi, kas ir šādi:
- Pati lappušu ievietošana ir liela pieskaitāma PHP, kas ir viens no lappušu izvietošanas trūkumiem. Tas ir pilnīgi pieskaitāms, jo tā ir ārēja funkcija, ko var ieviest, maksājot par papildu iezīmēšanu, stilu un loģiku. Neliela datu kopa bieži tiek ignorēta, lai izmantotu lappušu piešķiršanu.
- Lapu ievietošana var izraisīt zemu lapas rangu meklētājprogrammā, jo, ja lapa atrodas ārpus sākumlapas un tai ir jāveic vairāki klikšķi, tā parasti nesaņem augstu lapas rangu.
- Tas arī ierobežo saišu skaitu, sociālo kopīgošanu, kopējo rezultātu skaitu, kas ir redzami tīmekļa lapā, un enkura tekstu, ko lapa saņem, ja informācija tiek sadalīta vairākās lapās.
Jūs varat izvairīties no lappušu veidošanas tehnikas izmantošanas, mainot navigācijas iestatījumu struktūru.
Paginācijas ieviešana ar PHP un MySQL
Lai ieviestu lappušu noteikšanu, mums ir nepieciešama liela datu kopa, lai tai lietotu lappušu noteikšanu. Tāpēc vispirms mums ir jāizveido datu bāze un tabula. Pēc tam norādiet ierakstus tabulā un sāciet kodēt, lai izveidotu lappušu. Lai datus, kas iegūti no datu bāzes, varētu sadalīt vairākās lapās.
Šeit mēs iepazīstināsim ar diviem paginācijas piemēriem. Pirmais piemērs ir vienkāršs un vienkāršs lappušu izveides piemērs bez CSS, savukārt otrajā piemērā mēs izveidosim lappušu pievilcību, izmantojot CSS un bootstrap. Jūs varat redzēt abu izvadi. Tālāk ir norādītas lappušu izveides darbības;
Vienkāršas darbības, lai izveidotu lappusi -
- Izveidojiet datu bāzi un tabulu. Norādiet ierakstu sarakstu tabulā.
- Izveidojiet savienojumu ar MySQL datu bāzi.
- Izveidojiet lappušu saiti, lai sadalītu datus vairākās lapās un pievienotu tos tabulas apakšā.
- Iegūstiet datus no datu bāzes un parādiet tos vairākās lapās.
Izpildiet tālāk norādīto darbību pa vienam un izveidojiet vienkāršu lappušu lapu.
1. piemērs
Zemāk redzamais kods ir vienkāršs lappušu veidošanas piemērs, kas tiek veikts PHP ar MySQL datu bāzes palīdzību. Tas sadala no datu bāzes iegūtos datus vairākās lapās. Šajā piemērā mēs izveidosim lappušu secību alfabētiem, kas tiks parādīti vairākās lapās.
Datu bāzes izveide
Vispirms izveidojiet datu bāzi ar nosaukumu lappuse kā mēs izveidojām, un tajā esošā tabula nosaukta alfabēts . Izveidojiet atribūtu pēc nosaukuma id un alfabēts , un norādiet datus tabulā.
Datu bāzes savienojamība
PHP faila savienošana ar datu bāzi ir obligāts uzdevums. Lai tīmekļa lapā varētu parādīt datubāzē saglabātos datus. Tāpēc pievienojiet datu bāzi savā PHP failā, lai rādītu datus tīmekļa lapā.
Varat ierakstīt datu bāzes savienojuma kodu tajā pašā failā, kā arī saglabāt to atsevišķi citā failā un iekļaut to vajadzīgajā PHP failā. Kods datu bāzes savienojumam-
$conn = mysqli_connect('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); }
Šajā apmācībā mēs izmantojam mysqli pagarinājumu. Tātad visi vaicājumi tiek rakstīti saskaņā ar mysqli formātu.
Iegūstiet pašreizējās lapas numuru
Tālāk norādītais kods nosaka lapas numuru, kuru lietotājs pašlaik apmeklē. Ja tā nav, pēc noklusējuma lapas numurs tiek iestatīts uz 1.
if (!isset ($_GET['page']) ) { $page = 1; } else { $page = $_GET['page']; }
Formula lappusei
Lapu šķirošanai ir jāiestata vienā lapā parādāmo ierakstu skaita ierobežojums. Šeit mēs iestatām rezultātu ierobežojumu vienā lapā uz 10, tāpēc tas tiks parādīts katrā lapā, kā norādīts tālāk -
1. lapa — no A līdz J (1–10)
2. lapa — no K līdz T (11-20)
3. lapa — no U līdz Z (21-26)
masīvu saraksts java kārtošanā
$results_per_page = 10; $page_first_result = ($page-1) * $results_per_page;
Iegūstiet kopējo lapu skaitu
$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);
Izgūt datus un parādīt tīmekļa lapā
Tālāk norādītais kods tiek izmantots, lai izgūtu datus no datu bāzes un parādītu tīmekļa lapās, kas ir attiecīgi sadalītas.
$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>'; }
Parādiet saiti uz lapām URL
Izmantojot šo kodu, tīmekļa lapas URL mainīsies katrai lapai.
for($page = 1; $page<= $number_of_page; $page++) { echo ' <a href="index2.php?page=" . $page ''>' . $page . ' '; </=>
Galīgais kods
Tagad salieciet visus kodus vienā failā, lai pabeigtu lappušu pārsūtīšanu.
Fails: 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>'; } //display the link of the pages in URL for($page = 1; $page<= $number_of_page; $page++) { echo ' <a href="index2.php?page=" . $page ''>' . $page . ' '; } ?> </=>
Izvade:
regexp_like mysql
Skatiet zemāk esošo izvadi, lai redzētu iepriekšminēto lappušu sadalīšanas piemēru -
2. piemērs
Tālāk sniegtais piemērs ir vēl viens lappušu veidošanas piemērs, kurā mēs izmantojām CSS kopā ar HTML, lai padarītu tīmekļa lapas skatu pievilcīgāku. CSS padara vietni radošāku un pievilcīgāku. No otras puses, MySQL datus saglabā datu bāzē. Tātad, jūs varat iemācīties lappušu daudz labāk.
Mēs esam ierakstījuši visu kodu vienā failā, izņemot datu bāzes savienojumu. Tāpēc mēs izveidosim divus failus, t.i., connection.php un index1.php. Saglabājiet abus failus .php pagarinājumu. Zemāk esošajā piemērā jūs iemācīsities izveidot radošāku un pievilcīgāku lappusi.
Fails: connection.php
Fails: 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>'; // Number of pages required. $total_pages = ceil($total_records / $per_page_record); $pagLink = ''; if($page>=2){ echo ' Prev '; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" <a class = " active' href="index1.php?page=" .$i.''>'.$i.' '; } else { $pagLink .= ' '.$i.' '; } }; 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('page').value; page = ((page>)?:((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('localhost', 'root', ''); if (! $conn) { die('Connection failed' . mysqli_connect_error()); } else { mysqli_select_db($conn, 'pagination'); } </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 'connection.php' 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 '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; } //determine the sql LIMIT starting number for the results on the displaying page $start_from = ($page-1) * $per_page_record; $query = 'SELECT * FROM student LIMIT $start_from, $per_page_record'; $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>=2) { echo ' Prev '; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" <a class = " active' href="index1.php?page=" .$i.''>'.$i.' '; } else { $pagLink .= ' '.$i.' '; } }; 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('page').value; page = ((page>)?:((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;>
Iegūt datus un parādīt tīmekļa lapā
Tā kā esam izveidojuši datu kopu, tagad mums tā ir jāiegūst un jāparāda dažādās tīmekļa lapās. Tālāk norādītais kods tiek izmantots, lai izgūtu datus no datu bāzes un parādītu tīmekļa lapās, kas ir attiecīgi sadalītas.
Iegūt datus
Pēc datu bāzes savienojuma izveides failā “connection.php”, mums tas vienkārši jāimportē mūsu kodā, izmantojot atslēgvārdu request_once. Mēs skaidri definēsim ierakstu skaitu vienā lapā, ko rādīt.
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; } //determine the sql LIMIT starting number for the results on the displaying page $start_from = ($page-1) * $per_page_record; $query = 'SELECT * FROM student LIMIT $start_from, $per_page_record'; $rs_result = mysqli_query ($conn, $query);
Parādīt datus
Šī sadaļa ir ļoti vienkārša. Šajā sadaļā mēs atkārtojam cilpu pār iegūtajiem ierakstiem un parādām katru ierakstu, kas saglabāts tabulas kolonnās.
<tr> <td></td> <td></td> <td></td> <td></td> </tr>
Lappuses saites izveide
Tagad vissvarīgākais kods ir lappušu saites izveide. Tātad mēs izveidosim iepriekšējās, nākamās un ciparu saites lappušu veidošanai un pievienosim tās tabulas apakšā.
if($page>=2) { echo ' Prev '; } for ($i=1; $i<=$total_pages; $i++) { if ($i="=" $page) $paglink .=" <a class = " active\' href="index1.php?page=" .$i.\'\'>'.$i.' '; } else { $pagLink .= ' '.$i.' '; } }; 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('page').value; page = ((page>)?:((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;>
1)?1:page));>$total_pages){>=$total_pages;>1)?1:page));>$total_pages){>=$total_pages;>