clairvoyant Δημοσ. 14 Σεπτεμβρίου 2006 Δημοσ. 14 Σεπτεμβρίου 2006 Καλησπέρα, Έφτιαξα στα πλαίσια μιας εργασίας, μια μηχανή αναζήτησης. Η μηχανή δεν επιτρεπόταν να χρησιμοποιεί βάση δεδομένων παρά μόνο την τεχνική των inverted file indexes (είναι σημαντικό αυτό για τη συνέχεια). Να μην τα πολυλογώ, όλα πήγαν καλά, η μηχανή λειτούργησε και έφτασα στο σημείο όπου εμφανίζονται τα αποτελέσματα. Ο κώδικας php που έγραψα μου επιστρέφει τα αποτελέσματα σε ένα πολυδιάστατο πίνακα. Αν επιθυμώ να εμφανίσω όλα τα αποτελέσματα με μιας, τότε δεν υπάρχει πρόβλημα. Το πρόβλημα παρουσιάζεται όταν επιθυμώ να εφαρμόσω σελιδοποίηση (pagination). Στο internet βρήκα πολλές έτοιμες php-υλοποιήσεις για σελιδοποίηση, αλλά, αν έχω καταλάβει σωστά, όλες βασίζονται στο γεγονός ότι η μηχανή χρησιμοποιεί πιθανότατα SQL και ουσιαστικά από σελίδα σε σελίδα (π.χ. πηγαίνοντας από τη σελίδα αποτελεσμάτων 1 στη 2) εκτελείται ξανά το αρχικό ερώτημα, με αλλαγή μονάχα στα limits των αποτελεσμάτων που θα εμφανιστούν. Όπως καταλαβαίνετε, εγώ δεν μπορώ να το κάνω αυτό. Η διαδικασία της αναζήτησης είναι χρονοβόρα, λόγω του τρόπου που γίνεται, και μπορεί να χρειαστεί έως και 10 δευτερόλεπτα (χρόνος αποδεκτός για την εργασία). Δεν γίνεται λοιπόν κάθε φορά που ο χρήστης επιθυμεί να δει την επόμενη σελίδα αποτελεσμάτων να απαιτώ να περιμένει τόσο χρόνο ώστε να εκτελεστεί ξανά το ερώτημα. Η απορία μου λοιπόν, συνοψίζοντας: * Ο χρήστης πληκτρολογεί τις λέξεις αναζήτησης στο αρχείο search_form.php και πατάει υποβολή * Μπαίνουμε στο αρχείο search_engine.php όπου με POST/GET περνάμε τις μεταβλητές και ξεκινά η αναζήτηση. * Τα αποτελέσματα βρίσκονται μετά το πέρας της διαδικασίας στον πίνακα $search_results. * Εμφανίζω, π.χ., τα 10 πρώτα αποτελέσματα. Μετά όμως τι; Χρειάζομαι 2 πράγματα: ============================ Πρώτο και σημαντικότερο, έναν τρόπο ώστε να μην χάσω τα περιεχόμενα του $search_results αν μεταφερθώ σε άλλη σελίδα. Δοκίμασα να το κάνω με global variables αλλά δεν έπιανε. Έχω σκεφτεί να αποθηκεύσω τα περιεχόμενα του πίνακα σε ένα αρχείο, αλλά επειδή η λύση αυτή είναι "μπακάλικη", αναρωτιέμαι αν υπάρχει κάτι καλύτερο. Και, δεύτερον, χρειάζομαι έναν τρόπο μέσα από ένα από html link να μπορώ να περάσω μια μεταβλητή την οποία μετά θα 'πιάνω' με κάποιον τρόπο στη σελίδα που οδηγεί. Π.χ. ένα link της μορφής /search_engine.php?StartFrom=10 και να μπορώ, μπαίνοντας πια στο search_engine.php να διαβάσω κάπως την τιμή του StartFrom. Δοκίμασα να "προσομοιώσω" μόνος μου τη συμπεριφορά της μεθόδου GET αλλά πάλι δεν έπιανε. Οποιαδήποτε βοήθεια ευπρόσδεκτη...
bandito Δημοσ. 14 Σεπτεμβρίου 2006 Δημοσ. 14 Σεπτεμβρίου 2006 Sessions - Object Serialization Ουτε κάν serialization. Ο nemlah είναι άσχετος. Γράφτο κατευθείαν στο session και παιξε με τα limits στο GET.
nemlah Δημοσ. 14 Σεπτεμβρίου 2006 Δημοσ. 14 Σεπτεμβρίου 2006 Εντάξει το παραδέχομαι. Απο programming δεν ξέρει και πολλά πραγματα. ------------------------------------------------- He Sucks
clairvoyant Δημοσ. 15 Σεπτεμβρίου 2006 Μέλος Δημοσ. 15 Σεπτεμβρίου 2006 Ευχαριστώ πολύ guys, δεν είχα ασχοληθεί με sessions, υποθέτω ήρθε ο καιρός. Θα το κοιτάξω κι αν έχω κάποιο πρόβλημα θα σας ενημερώσω
aktivesystems Δημοσ. 18 Σεπτεμβρίου 2006 Δημοσ. 18 Σεπτεμβρίου 2006 Αν δεν ελυσες το προβλημα σου ετσι ενας πιο μπακαλικος τροπος που μου ηρθε ετσι πως το διαβασα ειναι με μια φορμα με μεθοδο POST...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.