2010-02-27 4 views
0

Итак, у меня есть это видео, но я хочу сделать опцию «сортировки» доступной для пользователей.PHP: сортировка по умному кодированию?

Параметры сортировки: ALL (без WHERE в операторе SQL), Videoklips (WHERE SCtry = 0), SC попробовать (WHERE SCtry = 1)

Теперь я знаю, как сделать это "мой" путь. Я поместил бы ссылки на index.php: ?sort=video и ?sort=SCtry

Затем сделать 2, если сортировать видео, если сортировать sctry , а затем продублировать весь index.php прямо сейчас (который отображает все) в 2-х, если и затем просто отредактируйте инструкцию SQL SELECT, с WHERE SCtry = '0' на? sort = video и WHERE SCtry = '1' on? sort = SCtry.

Теперь, я ЗНАЮ, как разобраться, но я хочу его кодировать более умным способом (если он существует, конечно), потому что это, кажется, слишком много, чтобы дублировать весь сайт, а затем просто изменить только 1 линия ...

Пример того, что я Мента с index.php, что я буду дублировать:

<?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

несколько вопросов: Вы не используете шаблонизатор Smarty, вы? Если это правильно, удалите ярлык. Следующий; что именно вы имеете в виду с дублированием index.php? Можете ли вы привести краткий пример кода, который вы хотите дублировать? –

+0

, пожалуйста, разместите несколько примеров кода, чтобы мы могли показать вам пример с тем же кодом. –

+1

Хорошо, сделаю и нет им не используя шаблон smarty, im собирается удалить тег сейчас – Karem

ответ

2

, не видя пример кода, я могу вам сказать, что это пример того, что я бы делать.

<? 
//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 
?> 

отредактирован согласно запросу OP ...

+0

Это хорошо, именно то, что я просил .. но как я могу это сделать, если у меня также есть ORDER BY id? – Karem

+0

Я отредактировал свой пример, как вы просили –

+0

. Я бы выбрал что-то вроде $ sort_options = array ("video" => "где' SCtry' = 0 ", ...); if (isset ($ sort_options [$ _ GET ['sort']])) $ sql. = $ Sort_option [$ _ GET ['sort']]; но было бы гораздо лучше использовать что-то вроде доктрины или zend_db_table в любом случае – roman