2010-02-27 70 views
0

所以我有这个videosection,但我想为用户做一个“排序”选项avaible。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'on?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的模板引擎,是吗?如果正确,请删除smarty标签。下一个;你到底意味着什么重复index.php?你能举一个你想要复制的代码的简单例子吗? – 2010-02-27 15:38:42

+0

请发布一些示例代码,以便我们可以向您展示相同代码的反例。 – 2010-02-27 15:39:21

+1

好吧,会做,并没有我不使用smarty模板,我即将去除标签现在 – Karem 2010-02-27 15:41:36

回答

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

编辑为每个操作的请求......

+0

这是好,正是我要求..但我怎么办,如果我也有ORDER BY ID? – Karem 2010-02-27 15:55:48

+0

我已经编辑我的示例,因为你已经请求 – 2010-02-27 16:03:01

+0

我会去做类似 $ sort_options = array(“video”=>“where SCtry' = 0”,...);如果(isset($ sort_options [$ _GET ['sort']]))$ sql。= $ sort_option [$ _ GET ['sort']]; 但是使用doctrine或zend_db_table之类的东西会更好用 – roman 2010-02-27 16:04:36