..


Sponsede Lenker

Nummerering av data fra en MySQL db

Artikkel skrevet av Max Bossi

Både i vår guide til PHP , som i tidligere artikler viet til språket, har vi allerede sett hvordan vi skal utnytte i ulike måter vinnerkombinasjonen PHP / MySQL.

Spesielt har vi allerede sett hvordan du kan hente data fra DB, men vi har "glemt" å ta et "problem" er veldig vanlig, nemlig: når postene i databasen er spesielt tallrike, som du kan dele dem inn i flere sider?

I denne artikkelen, faktisk vil vi se hvordan å gjøre paginering av en stor mengde data innen en gitt tabell i databasen vår.
La oss ta et eksempel: si du har en tabell kalt tidsplan består av bare tre felt: id, navn og telefonnummer, og si at denne tabellen er befolket med 100 poster:

Som du kan forestille deg det ville være upraktisk å ønske å trekke ut alle de hundre poster innenfor en enkelt side, mye mer behagelig ville være å fjerne dem ved å dele dem inn i flere sider med en haug av poster hver.
For å gjøre det, bruker vi en hendig funksjon innfødte MySQL LIMIT funksjon som tillater oss å fastslå nøyaktig hvor mange og hvilke poster som skal velge. Å gjøre jobben sin LIMIT krever to parametre: posten for avreise og antall poster å hente.

La oss se et praktisk eksempel:






 <?







 / / Opprett en variabel som angir antall poster

 





 / / For å vise på hver side







 $ X_pag = 5;









 / / Hent gjeldende sidetall.







 / / Generelt du bruker en spørrestrengsamling







 $ Side = $ _GET ['side'];









 / / Sjekk om $ side er forbedret ...







 / / ... Ellers tildele jeg verdien 1







 if ($ side) $ side = 1;

 







 / / Jeg kobler til databasen







 $ Conn = mysql_connect ("localhost", "bruker", "passord");







 mysql_select_db ("db_name", $ conn);









 / / Bruk mysql_num_rows til å telle radene i







 / / I tabellen Agenda







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









 / / Bruke en enkel matematisk operasjon ringe







 / / Det totale antall sider







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









 / / Beregning av som registrerer for å starte







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









 / / Hent postene for gjeldende side ...







 / / For å bruke LIMIT $ fra først og telle opp til $ x_pag







 $ Rs = mysql_query ("SELECT * FROM kalenderen LIMIT $ første, $ x_pag");







 $ No = mysql_num_rows ($ rs);







 if ($ antall! = 0) {



  



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



    



 $ Rad = 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 "Ingen elementer funnet!"







 }









 / / Hvis den totale sidene er mer enn 1 ...







 / / Mold koblingen for å gå frem og tilbake mellom forskjellige 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 "Neste side </ a>";



  



 }

 





 }









 / / Close tilkobling til DB







 mysql_close ($ conn);







 ?>



Koden er godt kommentert, og derfor tror ikke det er behov for ytterligere forklaring.

I samme kategori ...
E-Learning
Linux (Course) Linux (Course)
Komplett guide til open-source system. Starter fra 49 €.
MySQL (Course) MySQL (Course)
Forvaltning av open-source database. Starter fra 39 €.
PHP (Course) PHP (Course)
Full kurs for å lage dynamiske nettsider. Starter fra 49 €.
Sponsede Lenker