..
Τόσο σε μας οδηγός για την PHP , η οποία κατά τα προηγούμενα άρθρα που αφιερώνονται στη γλώσσα, έχουμε ήδη δει πώς να κάνει το νικητήριο συνδυασμό με διαφορετικούς τρόπους PHP / MySQL.
Συγκεκριμένα, έχουμε ήδη δει πώς να αντλούν στοιχεία από την DB, αλλά δεν έχουμε «ξεχάσει» να του αποστείλει "πρόβλημα" είναι πολύ κοινό, που είναι: όταν τα αρχεία της βάσης δεδομένων είναι ιδιαίτερα πολυάριθμες, όπως μπορείτε να τα χωρίσουν σε πολλές σελίδες;
Σε αυτό το άρθρο, στην πραγματικότητα, θα δούμε πώς να το κάνουμε σελιδοποίησης ενός μεγάλου όγκου δεδομένων μέσα σε συγκεκριμένο πίνακα στη βάση δεδομένων μας.
Εδώ είναι ένα παράδειγμα: ας υποθέσουμε ότι έχετε έναν πίνακα που ονομάζεται πρόγραμμα αποτελείται μόνο από τρία πεδία: id, όνομα και τηλέφωνο, και να πω ότι ο πίνακας αυτός έχει συμπληρωθεί με 100 εγγραφές:

Ας δούμε ένα πρακτικό παράδειγμα:
<?
/ / Δημιουργήστε μια μεταβλητή που καθορίζει τον αριθμό των εγγραφών
/ / Για να εμφανίζονται σε κάθε σελίδα
$ X_pag = 5?
/ / Ανάκτηση αριθμό της τρέχουσας σελίδας.
/ / Συνήθως χρησιμοποιείτε ένα QueryString
$ Page = $ _GET ['page']?
/ / $ Ελέγξτε αν η σελίδα είναι ενισχυμένο ...
/ / ... Διαφορετικά, να ορίσω την τιμή 1
if ($ σελίδα) $ σελίδα = 1?
/ / I σύνδεση με τη βάση δεδομένων
$ Conn mysql_connect = ("localhost", "χρήστης", "password")?
mysql_select_db ("db_name", $ conn)?
/ / Χρησιμοποιήστε mysql_num_rows για την καταμέτρηση των γραμμών
/ / Στο ημερολόγιο του πίνακα
$ All_rows = mysql_num_rows (mysql_query ("SELECT id από την ημερήσια διάταξη"))?
/ / Χρησιμοποιώντας μια απλή μαθηματική κλήση λειτουργία
/ / Ο συνολικός αριθμός των σελίδων
All_pages = $ ceil ($ all_rows / $ x_pag)?
/ / Υπολογισμός της που καταγράφουν για να ξεκινήσει
Πρώτη $ = ($ σελίδα - 1) * $ x_pag?
/ / Ανάκτηση των αρχείων για την τρέχουσα σελίδα ...
/ / Για τη χρήση LIMIT $ από την πρώτη και μετρήστε μέχρι $ x_pag
$ Rs = mysql_query ("SELECT * FROM ΟΡΙΟ ημερολόγιο $ πρώτο, $ x_pag")?
$ Nr = mysql_num_rows ($ rs)?
if ($ nr! = 0) {
για ($ x = 0? $ x <$ ν, $ x + +) {
$ Γραμμή = mysql_fetch_assoc ($ rs)?
echo "<table> <tr>"?
echo "<td>".
$ Σειρά ['id'].
"</ Td>"?
echo "<td>".
$ Σειρά ['name'].
"</ Td>"?
echo "<td>".
$ Σειρά [«τηλέφωνο»].
"</ Td>"?
echo "</ tr> </ table>"?
}
Else {}
echo "Δεν βρέθηκαν εγγραφές!"
}
/ / Αν το συνολικό σελίδες είναι πάνω από 1 ...
/ / Σύνδεση εκτύπωσης για να πάει μπροστά και πίσω μεταξύ των διαφόρων σελίδων!
if ($ all_pages> 1) {
if ($ σελίδα> 1) {
echo "<a href=\"". $_SERVER['PHP_SELF']. "?pag=". $pag-1. "\">"?
}
if ($ all_pages> $ σελίδα) {
echo "<a href=\"". $_SERVER['PHP_SELF']. "?pag=". $pag + 1. "\">"?
echo "Επόμενη Σελίδα </ a>"?
}
}
/ / Στενή σχέση με την DB
mysql_close ($ conn)?
;>
Ο κώδικας είναι καλά σχολίασε και, ως εκ τούτου, δεν νομίζω ότι υπάρχει ανάγκη για περαιτέρω εξηγήσεις.
| |
Linux (Μάθημα)
Πλήρης οδηγός για την open-source σύστημα. Από 49 €. |
| |
MySQL (Μάθημα)
Διαχείριση του open-source βάση δεδομένων. Από 39 €. |
| |
PHP (Μάθημα)
Η πλήρης σειρά μαθημάτων για τη δημιουργία δυναμικών ιστοσελίδων. Από 49 €. |