Καλησπέρα και καλή εβδομάδα με μια ερώτηση. Επειδή αρχίζω σιγα σιγα να ασχολούμε με php και δυναμικές σελίδες. Θέλω να ρωτήσω αν είναι σωστός ο τρόπος που έμαθα να χρησιμοποιώ κάποιες παραμέτρους, γιατί μου φαίνεται οτι θα γίνονται πολύ μεγάλοι και πολύπλοκοι όσο μεγαλώνει η σελίδα μου.
Απο το μενού εμφανίζω μια λίστα αποτελεσμάτων από την mysql που το WHERE του SELECT καθορίζεται από μια μεταβλητή που θα αναθέσει το *get από το url. Δηλαδή για παράδειγμα βάζω το κώδικα όπως παρακάτω γιανα μην μου πετάει σφάλμα αν κάτι είναι NULL. Απορώ όμως είναι αυτός ο σωστός τρόπος; Γιατί αν θέλω να βάλω για παράδειγμα άλλες 10 παραμέτρους σαν φίλτρα (διαθεσιμότητα, εύρος τιμών, χρώμα, μέγεθος οθόνης κλπ) είναι λογικό να φτιάξω ένα σιδηρόδρομο url και 300 γραμμές κώδικα με τα if και else του select; Και επίσης αν κάποια στιγμή θελήσω να βάλω μια παράμετρο ακόμα, σκεφτείτε σπαζοκεφαλιά στα elseif.
Παρακαλώ όποιος μπορεί να βοηθήσει για μια πιο βέλτιστη εφαρμογή αυτού που γράφω και αν ειναι σωστος ο τροπος μου. Μην μου λέτε για αλλες γλώσσες (python,js κλπ)
$os= sanitize(isset($_GET['os'])) ? sanitize($_GET['os']) : null;
$hdd = sanitize(isset($_GET['hdd'])) ? sanitize($_GET['hdd']) : null;
if (os != NULL && hdd == NULL){
$sql="SELECT * FROM mobiles
WHERE os ='$os'";}
elseif (os == NULL && hdd != NULL){
$sql="SELECT * FROM mobiles
WHERE hdd ='$hdd'";}
elseif (os == NULL && hdd == NULL){
$sql="SELECT * FROM mobiles";}
else {
$sql="SELECT * FROM mobiles
WHERE hdd ='$hdd' AND os ='$os'";}
*Χρησιμοποιώ sanitize στα string για αποφυγή sql injection κλπ.
Ερώτηση
killer76 51
Καλησπέρα και καλή εβδομάδα με μια ερώτηση. Επειδή αρχίζω σιγα σιγα να ασχολούμε με php και δυναμικές σελίδες. Θέλω να ρωτήσω αν είναι σωστός ο τρόπος που έμαθα να χρησιμοποιώ κάποιες παραμέτρους, γιατί μου φαίνεται οτι θα γίνονται πολύ μεγάλοι και πολύπλοκοι όσο μεγαλώνει η σελίδα μου.
Απο το μενού εμφανίζω μια λίστα αποτελεσμάτων από την mysql που το WHERE του SELECT καθορίζεται από μια μεταβλητή που θα αναθέσει το *get από το url. Δηλαδή για παράδειγμα βάζω το κώδικα όπως παρακάτω γιανα μην μου πετάει σφάλμα αν κάτι είναι NULL. Απορώ όμως είναι αυτός ο σωστός τρόπος; Γιατί αν θέλω να βάλω για παράδειγμα άλλες 10 παραμέτρους σαν φίλτρα (διαθεσιμότητα, εύρος τιμών, χρώμα, μέγεθος οθόνης κλπ) είναι λογικό να φτιάξω ένα σιδηρόδρομο url και 300 γραμμές κώδικα με τα if και else του select; Και επίσης αν κάποια στιγμή θελήσω να βάλω μια παράμετρο ακόμα, σκεφτείτε σπαζοκεφαλιά στα elseif.
Παρακαλώ όποιος μπορεί να βοηθήσει για μια πιο βέλτιστη εφαρμογή αυτού που γράφω και αν ειναι σωστος ο τροπος μου. Μην μου λέτε για αλλες γλώσσες (python,js κλπ)
$os= sanitize(isset($_GET['os'])) ? sanitize($_GET['os']) : null; $hdd = sanitize(isset($_GET['hdd'])) ? sanitize($_GET['hdd']) : null; if (os != NULL && hdd == NULL){ $sql="SELECT * FROM mobiles WHERE os ='$os'";} elseif (os == NULL && hdd != NULL){ $sql="SELECT * FROM mobiles WHERE hdd ='$hdd'";} elseif (os == NULL && hdd == NULL){ $sql="SELECT * FROM mobiles";} else { $sql="SELECT * FROM mobiles WHERE hdd ='$hdd' AND os ='$os'";}
*Χρησιμοποιώ sanitize στα string για αποφυγή sql injection κλπ.
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
10 απαντήσεις σε αυτή την ερώτηση
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Εγγραφείτε για έναν νέο λογαριασμόΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα