..
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:

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.
| |
Linux (Course)
Komplett guide til open-source system. Starter fra 49 €. |
| |
MySQL (Course)
Forvaltning av open-source database. Starter fra 39 €. |
| |
PHP (Course)
Full kurs for å lage dynamiske nettsider. Starter fra 49 €. |