2010-02-27 3 views
0

J'ai donc cette videoection, mais je veux faire une option de "tri" disponible pour les utilisateurs.PHP: trier de manière intelligente?

Options de tri: ALL (pas WHERE dans l'instruction SQL), Videoklips (OU SCtry = 0), essayez SC (OÙ SCtry = 1)

Maintenant, je sais comment faire comme ça "mon". J'aurais placé des liens sur index.php: ?sort=video et ?sort=SCtry

Ensuite, faire 2, si la vidéo de tri, si sctry sorte puis dupliquer l'ensemble index.php en ce moment (qui affiche tout) dans le 2 cas et de alors il suffit d'éditer l'instruction SQL SELECT, avec WHERE SCtry = '0' sur? sort = video, et WHERE SCtry = '1' sur? sort = SCtry.

Maintenant, je sais comment trier, mais je veux le coder d'une manière plus intelligente (si elle existe, bien sûr), parce que cela semble être trop pour dupliquer tout le site et ensuite seulement changer 1 ligne ...

exemple de ce que je ment avec index.php, que je vais dupliquer:

<?php 
$hent_meetup = mysql_query("SELECT * FROM member_film ORDER BY id DESC LIMIT 0,200") or die(mysql_error()); 
while($vis = mysql_Fetch_array($hent_meetup)) { 
?> 
+2

Quelques questions: Vous n'utilisez pas le Smarty moteur templating, êtes-vous? Si c'est correct, veuillez retirer le tag smarty. Prochain; que voulez-vous dire par dupliquer index.php? Pouvez-vous donner un bref exemple du code que vous voulez dupliquer? –

+0

s'il vous plaît poster quelques exemples de code afin que nous puissions vous montrer un contre-exemple du même code. –

+1

Ok, va faire et non im ne pas utiliser smarty template, je vais retirer l'étiquette maintenant – Karem

Répondre

2

sans voir exemple de code, je peux vous dire ceci est un exemple de ce que je faire.

<? 
//all of the code before the SQL statement here... 
$sql= ' SELECT `column` from `tablename`'; //or any other SQL that is appropriate before the conditional 
if(isset($_GET['sort'])){ 
    if($_GET['sort'] == 'video'){ 
     $sql .= ' WHERE `SCtry` = 0'; 
    }elseif($_GET['sort'] == 'SCtry'){ 
     $sql .= ' WHERE `SCtry` = 1'; 
    } 
} 
$sql .= ' ORDER BY `whatever`'; //or any other SQL that is appropriate after the conditional 
//rest of code... no need for duplication 
?> 

modifié selon la demande OP ...

+0

Ceci est bon, exactement ce que je demandais .. mais comment puis-je faire, si j'ai aussi ORDER BY id? – Karem

+0

J'ai édité mon exemple comme vous l'avez demandé –

+0

je voudrais quelque chose comme $ sort_options = array ("video" => "où' SCtry' = 0 ", ...); if (isset ($ sort_options [$ _ GET ['sort']])) $ sql. = $ Sort_option [$ _ GET ['sort']]; mais il serait beaucoup plus agréable d'utiliser quelque chose comme doctrine ou zend_db_table de toute façon – roman

Questions connexes