killer76 Δημοσ. 22 Ιανουαρίου 2021 Δημοσ. 22 Ιανουαρίου 2021 (επεξεργασμένο) Καλησπέρα. Προσπαθώ να φτιάξω φίλτρα για μια σελίδα που έχω. Κάτι σαν τα φίλτρα του skroutz. Δηλάδη αν πατάει κάποιος στην κατηγορία κινητά να έχει φίλτρα (οθόνη, dual sim κλπ) αν πατάει στους σκληρούς δίσκους να έχει φίλτρα (χωρητικότητα, τύπος κλπ). Απλά δεν ξέρω αν αυτός είναι ο σωστός τρόπος δημιουργίας φίλτρων. Γιατί έχω και ένα πρόβλημα. Έφτιαξα ένα πίνακα filters με πεδία id, filtername, filtercategory,filtergroup. οπότε βάζω ας πούμε Στο σημείο δηλαδή που θέλω να εμφανίσω τα μεγέθη του δίσκου, βάζω για παράδειγμα το filtergroup hardisksize Μετά έφτιαξα ένα δεύτερο πίνακα filter-products που παντρεύει τα προιόντα με τα φίλτρα δηλαδή κάπως έτσι: Δηλαδή το προιόν 22 είναι dual-sim, αδιάβροχο και με οθόνη 6 ιντσών Όπως το έχω κάνει, δουλέυει σωστά μόνο σε OR τα φίλτρα. εγώ θέλω όμως να είναι AND. Αν τσεκάρω δηλαδή το dual-sim θα μου εμφανίσει το κινητό 22, αν τσεκάρω το αδιάβροχο μόνο του, πάλι θα μου το εμφανίσει. Αν τσεκάρω και το dual-sim και το αδιάβροχο, δεν θα το εμφανίσει αν έχω το query μου σε AND. Μόνο αν το έχω σε OR. Εγώ θέλω να φιλτράρω τα πάντα με AND όμως. Κάπως έτσι είναι το model μου τώρα. Εκεί που τραβάω τα προιόντα. $this->db->select('*'); $this->db->from('products'); $this->db->join('brands', 'brands.brand_id = products.product_brand_id'); $this->db->join('filter_products', 'filter_products.filter_id = filters.filter_id', 'left'); $this->db->group_by('products.product_id'); if(isset($_GET['filters']) && $_GET['filters'] != ""){ $filters = $_GET['filters']; $filterquery = implode(' AND filter_products.filter_id = ',$filters); $this->db->where("(filter_products.filter_id = $filterquery)"); } Και το url με τα φίλτρα τσεκαρισμένα είναι κάπως έτσι όταν επιλέγω πχ dual sim και αδιάβροχο. ?filters[]=1&filters[]=2 =================================================================== Αυτός είναι σωστός τρόπος φιλτραρίσματος ή υπάρχει κάποιος καλύτερος? Προτιμώ να μου πείτε αν υπάρχει καλύτερος τρόπος κάπως σαν αυτό που έχω κάνει εγώ, δηλαδή με get και php και όχι ajax και js Επεξ/σία 22 Ιανουαρίου 2021 από killer76
k33theod Δημοσ. 24 Ιανουαρίου 2021 Δημοσ. 24 Ιανουαρίου 2021 Νομίζω το μόνο που πρέπει να κάνεις είναι να εφαρμοζεις τα filters στο query. Χωρίς πίνακες δηλαδή
killer76 Δημοσ. 24 Ιανουαρίου 2021 Μέλος Δημοσ. 24 Ιανουαρίου 2021 Δηλαδη; Τι ακριβως εννοεις φιλε μου;
killer76 Δημοσ. 25 Ιανουαρίου 2021 Μέλος Δημοσ. 25 Ιανουαρίου 2021 Τελικα κραταω τα φιλτρα σε ενα column στα products και καταργησα το πινακα που κανει το παντρεμα. Δεν ξερω αν ειναι ο καλυτερος τροπος, αλλα τουλαχιστον δουλευει τωρα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα