..


Σύνδεσμοι διαφημιζόμενων

Σελιδοποίηση των δεδομένων από MySQL db

Το άρθρο γράφτηκε από τον Max Bossi

Τόσο σε μας οδηγός για την PHP , η οποία κατά τα προηγούμενα άρθρα που αφιερώνονται στη γλώσσα, έχουμε ήδη δει πώς να κάνει το νικητήριο συνδυασμό με διαφορετικούς τρόπους PHP / MySQL.

Συγκεκριμένα, έχουμε ήδη δει πώς να αντλούν στοιχεία από την DB, αλλά δεν έχουμε «ξεχάσει» να του αποστείλει "πρόβλημα" είναι πολύ κοινό, που είναι: όταν τα αρχεία της βάσης δεδομένων είναι ιδιαίτερα πολυάριθμες, όπως μπορείτε να τα χωρίσουν σε πολλές σελίδες;

Σε αυτό το άρθρο, στην πραγματικότητα, θα δούμε πώς να το κάνουμε σελιδοποίησης ενός μεγάλου όγκου δεδομένων μέσα σε συγκεκριμένο πίνακα στη βάση δεδομένων μας.
Εδώ είναι ένα παράδειγμα: ας υποθέσουμε ότι έχετε έναν πίνακα που ονομάζεται πρόγραμμα αποτελείται μόνο από τρία πεδία: id, όνομα και τηλέφωνο, και να πω ότι ο πίνακας αυτός έχει συμπληρωθεί με 100 εγγραφές:

Όπως μπορείτε να φανταστείτε ότι θα ήταν πρακτικά αδύνατο να θέλετε να εξαγάγετε όλα τα αρχεία μέσα σε εκατόν μία σελίδα, θα ήταν πολύ πιο εύκολο να τους αφαιρέσει από την κατανομή τους σε διάφορες σελίδες με συγκεκριμένο αριθμό εγγραφών η κάθε μία.
Για να γίνει αυτό, χρησιμοποιούμε ένα πρακτικό χαρακτηριστικό γνώρισμα μητρική λειτουργία ορίου MySQL που μας επιτρέπει να προσδιοριστεί με ακρίβεια πόσες και ποιες εγγραφές θα επιλέξετε. Για να μην περιορίζουν τη δουλειά του απαιτεί δύο παραμέτρους: τα αρχεία της αναχώρησης και τον αριθμό των εγγραφών για ανάκτηση.

Ας δούμε ένα πρακτικό παράδειγμα:






 <?







 / / Δημιουργήστε μια μεταβλητή που καθορίζει τον αριθμό των εγγραφών

 





 / / Για να εμφανίζονται σε κάθε σελίδα







 $ 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)?







 ;>



Ο κώδικας είναι καλά σχολίασε και, ως εκ τούτου, δεν νομίζω ότι υπάρχει ανάγκη για περαιτέρω εξηγήσεις.

Στην ίδια κατηγορία ...
E-Learning
Linux (Μάθημα) Linux (Μάθημα)
Πλήρης οδηγός για την open-source σύστημα. Από 49 €.
MySQL (Μάθημα) MySQL (Μάθημα)
Διαχείριση του open-source βάση δεδομένων. Από 39 €.
PHP (Μάθημα) PHP (Μάθημα)
Η πλήρης σειρά μαθημάτων για τη δημιουργία δυναμικών ιστοσελίδων. Από 49 €.
Σύνδεσμοι διαφημιζόμενων