php filters

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

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

Απάντηση
abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

php filters

Δημοσίευση από abeautifulmind » 15 Δεκ 2011 18:40

Καλησπέρα σε όλους.
Έχω φτιάξει μία σελίδα όπου σε κάποιο κομμάτι χρειαζόμουν τα λεγόμενα φίλτρα όπως έχουν π.χ. το plaisio και το e-shop για τα προϊόντα τους. Αυτό που έκανα εγώ είναι ότι πατώντας σε ένα φίλτρο φορτώνω και το ανάλογο αρχείο php όπου με το κατάλληλο sql_query σε συνδυασμό με το κατάλληλο select/where επιλέγω από τον πίνακα mytable τα επιθυμητά αποτελέσματα και τα τυπώνω στην οθόνη. To θέμα είναι ότι έχω 4 επιλογές φίλτρων μίας κατηγορίας και μία επιλογή από μία δεύτερη κατηγορία.Δηλαδή έχω πιθανούς συνδυασμούς επιλογής φίλτρων =9 άρα χρειάζομαι 9 αρχεία με 9 sql_query και select/where.Μήπως αυτό είναι εις βάρος της σελίδας δηλαδή μήπως την επιβαρύνω?Γιατί αν θέλω να προσθέσω άλλη μία κατηγορία φίλτρου με 2 επιλογές π.χ. θα έχω συνολικά 29 συνδυασμούς επιλογών οπότε 29 διαφορετικά αρχεία.Ξέρετε κανένα πιο συμμαζεμένο τρόπο?

πιό αναλυτικά έχω τα φίλτρα

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

φίλτρα:
<div class="filtra">
Θέση&#58;<a id="disampled">Α κατηγορία</a><a id="disampled">Β κατηγορία</a><a id="disampled">Γ κατηγορία</a><a  id="selected" href="main.php?i=10122">Δ κατηγορία</a>
</br>
Κατηγορίες <a id="selected" href="main.php?i=10300">Εφηβικό</a><br />
</div>

όπου π.χ αν πατήσεις Δ κατηγορία σε πάει στο i=10122 όπου φοτρώνει το αρχείο php

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

case "10122"&#58;
?>

require_once &#40;'content/katigories/d_kat.php'&#41;;




break;
d_kat.php

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

$getkat="SELECT * from kategories where championship='Super leguae' and kat='Δ κατηγορία' order by team ASC ";
$getkat2=mysql_query&#40;$getkat&#41; or die&#40;"Could not get topic"&#41;;
$count=mysql_num_rows&#40;$getkat2&#41;;

if&#40;$count==0&#41;&#123;
echo"Δεν υπάρχουν αποτελέσματα που να συμφωνουν με τα κριτήρια που δώσατε.";
&#125;
else&#123;

while&#40;$getkat3=mysql_fetch_array&#40;$getkat2&#41;&#41;
&#123;
?>

<div id="team_emf">
<?php
echo"$getkat3&#91;team&#93;<br>";
?>
<div id="thesi">
<?php
echo"$getkat3&#91;thesi&#93; <br>";
?>
</div>


</div>
<?php

&#125;

&#125;

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

php filters

Δημοσίευση από Apostolis_38 » 16 Δεκ 2011 10:12

Εγώ σε αντίστοιχες περιπτώσεις μαζεύω όλες τις πιθανές επιλογές σε ένα αρχείο με μία συνθήκη και το κάνω include στο αρχείο που γίνεται το select.

Δηλαδή κάπως έτσι:

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

$i = $_GET&#91;"i"&#93;;
if &#40;$i == "10122"&#41;&#123; $i = "Δ κατηγορία";&#125;
elseif &#40;$i == "10123"&#41;&#123;$i = "Β κατηγορία";&#125;

$kat = $_GET&#91;"kat"&#93;;
if &#40;$kat == "10300"&#41;&#123; $kat = "Εφηβικό";&#125;
elseif &#40;$kat == "10301"&#41;&#123;$kat = "Παιδικό";&#125;
και πάει λέγοντας...

Ετσι στο query θα έχεις:

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

SELECT * from kategories where championship='".$i."' and kat='".$kat."' order by team ASC ";

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

Υ.Γ. Και φυσικά, θα "ασφαλίσεις" τον κώδικά σου με int, mysql_real_escape κ.λ.π. και ότι χρειάζεται.
Εγώ δεν στα γράφω εδώ χάριν συντομίας. Τα ευκόλως εννοούμενα παραλείπονται.

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

php filters

Δημοσίευση από Khronos » 16 Δεκ 2011 11:04


Απάντηση

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

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

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