..


Sponsrade länkar

Paginering av data från en MySQL db

Artikel skriven av Max Bossi

Både i vår guide till PHP , som i tidigare artiklar ägnas åt språk, vi har redan sett hur man kan utnyttja på olika sätt den vinnande kombinationen PHP / MySQL.

Närmare bestämt har vi redan sett hur man extraherar data från DB, men vi har "glömt" att lösa ett "problem" är mycket vanligt, nämligen när posterna i databasen är särskilt många, som du kan dela in dem i flera sidor?

I den här artikeln i själva verket kommer vi att se hur man gör sidnumrering av en stor mängd data i en viss tabell i vår databas.
Låt oss ta ett exempel: Säg att du har en tabell som kallas schema består av endast tre fält: id, namn och telefonnummer, och säga att denna tabell är befolkade med 100 poster:

Som ni kan föreställa er det skulle vara opraktiskt att vilja utvinna alla de ett hundra poster inom en enda sida, mycket mer bekväm vore att ta bort dem genom att dela in dem i flera sidor med en massa skivor vardera.
För att göra detta använder vi en behändig funktion infödd MySQL LIMIT-funktion som tillåter oss att exakt fastställa hur många och vilka poster som ska välja. För att kunna arbeta LIMIT kräver två parametrar: rekordet för avresa och antalet poster som ska hämtas.

Låt oss se ett praktiskt exempel:






 <?







 / / Skapa en variabel som anger antal poster

 





 / / För att visa på varje sida







 $ X_pag = 5;









 / / Hämta det aktuella sidnumret.







 / / Generellt du använder en QueryString







 $ Page = $ _GET ['sida'];









 / / Kontrollera om $ sida är bättre ...







 / / ... Annars tilldelar jag värdet 1







 if ($ sida) $ page = 1;

 







 / / Jag ansluter till databasen







 $ Conn = mysql_connect ("localhost", "användare", "lösenord");







 mysql_select_db ("db_name", $ conn);









 / / Använd mysql_num_rows att räkna rader i







 / / I tabellen agendan







 $ All_rows = mysql_num_rows (mysql_query ("SELECT id FROM agenda"));









 / / Med en enkel matematisk operation ringa







 / / Det totala antalet sidor







 All_pages = $ tak ($ ​​all_rows / $ x_pag);









 / / Beräkning av som registrerar att starta







 $ Första = ($ sida - 1) * $ x_pag;









 / / Hämta poster för den aktuella sidan ...







 / / För att använda LIMIT $ från första och räkna upp till $ x_pag







 $ Rs = mysql_query ("SELECT * FROM kalender på $ först $ x_pag");







 $ Nej = mysql_num_rows ($ rs);







 if ($ rad! = 0) {



  



 för ($ x = 0; $ x <$ n $ x + +) {



    



 $ Row = mysql_fetch_assoc ($ rs);



    



 echo "<table> <tr>";



    



 echo "<td>".

 



 $ Rad ['id'].

 



 "</ Td>";



    



 echo "<td>".

 



 $ Rad ['name'].

 



 "</ Td>";



    



 echo "<td>".

 



 $ Rad ['telefon'].

 



 "</ Td>";



    



 echo "</ tr> </ table>";



  



 }







 Else {}



  



 echo "Hittade inga skivor!"







 }









 / / Om den totala sidorna är mer än 1 ...







 / / Mögel på länken för att gå fram och tillbaka mellan olika sidor!







 if ($ all_pages> 1) {



  



 if ($ sida> 1) {



    



 echo "<a href=\"". $_SERVER['PHP_SELF']. "?pag=". $pag-1. "\">";



    





  



 }

 

  



 if ($ all_pages> $ sida) {



    



 echo "<a href=\"". $_SERVER['PHP_SELF']. "?pag=". $pag + 1. "\">";



    



 echo "Nästa sida </ a>";



  



 }

 





 }









 / / Nära anslutning till DB







 mysql_close ($ conn);







 ?>



Koden är väl kommenterade och därför inte tror att det finns ett behov av ytterligare förklaring.

I samma kategori ...
E-lärande
Linux (Kurs) Linux (Kurs)
Komplett guide till öppen källkod-system. Från 49 €.
MySQL (Kurs) MySQL (Kurs)
Hantering av öppen källkod databas. Från 39 €.
PHP (Kurs) PHP (Kurs)
Fullständig kurs för att skapa dynamiska webbplatser. Från 49 €.
Sponsrade länkar