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

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.
| |
Linux (Kursus)
Komplet guide til open source-system. Fra 49 €. |
| |
MySQL (Kursus)
Forvaltning af open source-database. Fra 39 €. |
| |
PHP (Kursus)
Fuld kursus for at skabe dynamiske web-sites. Fra 49 €. |