..


Sponsorerede links

Pagineringen af ​​data fra en MySQL db

Artikel skrevet af Max Bossi

Både i vores guide til PHP , som i de tidligere artikler om sprog, har vi allerede set, hvordan man kan gøre den vindende kombination på forskellige måder PHP / MySQL.

Konkret har vi allerede set, hvordan man kan udtrække data fra DB, men vi har "glemt" at sende en "problem" er meget almindeligt, det er: når poster i databasen er særligt mange, som du kan dele dem op i flere sider?

I denne artikel, i virkeligheden vil vi se, hvordan du gør paging af en stor mængde data inden for en given tabel i vores database.
Her er et eksempel: sige, at du har en tabel kaldt tidsplan kun består af tre felter: id, navn og telefonnummer, og sige, at denne tabel er befolket med 100 poster:

Som du kan forestille dig det ville være upraktisk at man ønsker at udtrække alle poster inden for 101-side, ville være meget nemmere at fjerne dem ved at dele dem i flere sider med en masse af plader hver.
For at gøre dette, bruger vi en praktisk funktion indfødt MySQL LIMIT funktion, der giver os mulighed for præcist at afgøre, hvor mange og hvilke poster der skal vælge. For at gøre sit arbejde LIMIT kræver to parametre: optegnelser afgang og antallet af poster der skal hentes.

Lad os se et praktisk eksempel:






 <?







 / / Opret en variabel, der angiver antallet af poster

 





 / / For at vise på hver side







 $ X_pag = 5;









 / / Hent det aktuelle sidetal.







 / / Normalt skal du bruge en QueryString







 $ Side = $ _GET ['side'];









 / / Tjek om $ side er forbedret ...







 / / ... Ellers skal jeg tildele værdien 1







 if ($ side) $ side = 1;

 







 / / I forbindelse til databasen







 $ Conn = mysql_connect ("localhost", "bruger", "password");







 mysql_select_db ("db_name", $ conn);









 / / Brug mysql_num_rows til at tælle rækker







 / / I tabellen kalenderen







 $ All_rows = mysql_num_rows (mysql_query ("SELECT id fra dagsordenen"));









 / / Ved hjælp af en simpel matematisk operation kalder







 / / Det samlede antal sider







 All_pages = $ ceil ($ all_rows / $ x_pag);









 / / Beregning af som registrerer at starte







 $ Første = ($ side - 1) * $ x_pag;









 / / Hent posterne for den aktuelle side ...







 / / For at bruge LIMIT $ fra første og tælle op til $ x_pag







 $ Rs = mysql_query ("SELECT * FROM kalender LIMIT $ first, $ x_pag");







 $ Nr = mysql_num_rows ($ rs);







 if ($ nr! = 0) {



  



 for ($ x = 0; $ x <$ n $ x + +) {



    



 $ Row = mysql_fetch_assoc ($ rs);



    



 echo "<table> <tr>";



    



 echo "<td>".

 



 $ Row ['id'].

 



 "</ Td>";



    



 echo "<td>".

 



 $ Row ['navn'].

 



 "</ Td>";



    



 echo "<td>".

 



 $ Row ['telefon'].

 



 "</ Td>";



    



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



  



 }







 Else {}



  



 echo "Ingen poster fundet!"







 }









 / / Hvis den samlede sider er mere end 1 ...







 / / Print linket for at gå frem og tilbage mellem forskellige sider!







 if ($ all_pages> 1) {



  



 if ($ side> 1) {



    



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



    





  



 }

 

  



 if ($ all_pages> $ side) {



    



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



    



 echo "Næste side </ a>";



  



 }

 





 }









 / / Luk forbindelse til DB







 mysql_close ($ conn);







 ?>



Koden er kommenteret, og derfor tror ikke, at der er behov for yderligere forklaring.

I den samme kategori ...
E-Learning
Linux (Kursus) Linux (Kursus)
Komplet guide til open source-system. Fra 49 €.
MySQL (Kursus) MySQL (Kursus)
Forvaltning af open source-database. Fra 39 €.
PHP (Kursus) PHP (Kursus)
Fuld kursus for at skabe dynamiske web-sites. Fra 49 €.
Sponsorerede links