Σελιδοποίηση αποτελεσμάτων

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
selemeles
Δημοσιεύσεις: 464
Εγγραφή: 23 Νοέμ 2006 12:42
Τοποθεσία: Άνω Λιόσια
Επικοινωνία:

Σελιδοποίηση αποτελεσμάτων

Δημοσίευση από selemeles » 11 Δεκ 2006 18:36

Θα ήθελα να ρωτήσω πως γίνεται η σελιδοποίηση...
Αν έχω πχ 100 αποτελέσματα από ένα query πως μπορώ να τα εμφανίσω ανα πεντάδες για παράδειγμα; Επίσης θα ήθελα ο κώδικας να είναι όσο πιο ασφαλές γίνεται :)
:: Blue Webeyes :: www.bwe.gr
-----------------------------------------------------
έπιπλα κουζίνας

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Σελιδοποίηση αποτελεσμάτων

Δημοσίευση από ThyClub » 11 Δεκ 2006 22:03

Όλα είναι στο query που θα κάνεις προς την βάση δεδομένων:

Κώδικας: Επιλογή όλων

SELECT *
FROM `tblItems`
LIMIT 0 , 30
Τώρα φαντάσου τι θα γίνει αν δώσεις αυτό το query... Αυτό που θα γίνει είναι οτι η mysql θα σου επιστρέψει 30 εγγραφές αρχίζοντας απο το 0.
Αν δώσεις :

Κώδικας: Επιλογή όλων

SELECT *
FROM `tblItems`
LIMIT 5 , 5
θα σου επιστρέψει 5 εγγραφές ξεκινώντας απο την εγγραφή 5 κτλ κτλ

Αυτό που πρέπει να κάνεις είναι να δημιουργήσεις ενα script το οποίο θα σου δίνει links αυτής της μορφής:

<a href="index.php?show=results&start=5&results=5">10</a>

Έτσι εσύ θα μπορείς να χρησιμοποιήσεις τις μεταβλητές $_GET['start'] & $_GET['results'] σαν start & limit στο query σου:

Κώδικας: Επιλογή όλων

SELECT *
FROM `tblItems`
LIMIT $_&#91;'start'&#93; , $_GET&#91;'results'&#93;
Για το συγκεκριμένο τρόπο μπορείς να κάνεις ενα $start = (int) $_GET['start'];
$results = (int) $_GET['results'];
ώστε να έχεις μια μορφή τυπικής ασφάλειας.

Βέβαια το θέμα ασφάλεια σηκώνει πολύ κουβέντα.

Άβαταρ μέλους
selemeles
Δημοσιεύσεις: 464
Εγγραφή: 23 Νοέμ 2006 12:42
Τοποθεσία: Άνω Λιόσια
Επικοινωνία:

Σελιδοποίηση αποτελεσμάτων

Δημοσίευση από selemeles » 11 Δεκ 2006 22:13

Ευχαριστώ πολύ φίλε. Το δοκιμάζω αύριο :)
Όσο για την ασφάλεια δεν έχεις και άδικο!!!

Όπως αναφαίρεται και αλλού είναι πολύ ΜΕΓΑΛΟ θέμα... Για αυτό ξεκινάμε με τα απλά ;)
:: Blue Webeyes :: www.bwe.gr
-----------------------------------------------------
έπιπλα κουζίνας

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Σελιδοποίηση αποτελεσμάτων

Δημοσίευση από mrpc » 11 Δεκ 2006 23:05

Πολύ χρήσιμο είναι και ένα query της μορφής:

Κώδικας: Επιλογή όλων

$sql = "SELECT count&#40; * &#41; as records  FROM yourtable
Με αυτό βλέπεις το σύνολο τον εγγραφών στον πίνακα, και έτσι εκτός από next page κλπ, μπορείς να βάλεις αρίθμηση (π.χ. όπως τα αποτελέσματα στο google), first και last page.

Άβαταρ μέλους
selemeles
Δημοσιεύσεις: 464
Εγγραφή: 23 Νοέμ 2006 12:42
Τοποθεσία: Άνω Λιόσια
Επικοινωνία:

Σελιδοποίηση αποτελεσμάτων

Δημοσίευση από selemeles » 12 Δεκ 2006 09:39

Σωστός mrpc. Αυτό ήθελα να το κάνω! Κάτω δηλαδή να μπει και ποια σελίδα είναι, όχι μόνο next previous, αλλά να σου δείχνει και 3 μπροστα και 3 πίσω δλδ με νούμερα. Αλλά εκεί πάμε νομίζω καθαρά σε μαθηματικά, εκτός αν υπάρχει έτοιμη κάποια function!
:: Blue Webeyes :: www.bwe.gr
-----------------------------------------------------
έπιπλα κουζίνας

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Σελιδοποίηση αποτελεσμάτων

Δημοσίευση από mrpc » 12 Δεκ 2006 09:49

Εντάξει, μερικές διαιρέσεις δεν είναι τίποτα... δοκίμασε και αν δεν βγάλεις άκρη εδώ είμαστε ;)

Άβαταρ μέλους
selemeles
Δημοσιεύσεις: 464
Εγγραφή: 23 Νοέμ 2006 12:42
Τοποθεσία: Άνω Λιόσια
Επικοινωνία:

Σελιδοποίηση αποτελεσμάτων

Δημοσίευση από selemeles » 12 Δεκ 2006 10:03

I will try και θα σας ενημερώσω... ;)
Ευχαριστώ πολύ πάντως!!!
:: Blue Webeyes :: www.bwe.gr
-----------------------------------------------------
έπιπλα κουζίνας

Άβαταρ μέλους
selemeles
Δημοσιεύσεις: 464
Εγγραφή: 23 Νοέμ 2006 12:42
Τοποθεσία: Άνω Λιόσια
Επικοινωνία:

Σελιδοποίηση αποτελεσμάτων

Δημοσίευση από selemeles » 12 Δεκ 2006 19:36

ΟΚ κομπλέ.
Και για του λόγου του αληθές
http://www.en-garde.gr/index.php?CatID=14

Για να βρω το πλήθος των εγγραφών χρησιμοποίησα το mysql_num_rows($GetRecords) γιατί αυτό που με είπες mrpc δε μπόρεσα να το τρέξω...
Ευχαριστώ πάντως..
:: Blue Webeyes :: www.bwe.gr
-----------------------------------------------------
έπιπλα κουζίνας

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες