我试图在php中将变量连接到我的sql查询,以便根据该变量对表进行排序。 例如:
if ($_GET['sort'] == 'Val'){
$query .= " ORDER BY val";
}
我需要一个varbvle $ sortorder来与这个查询连接起来。这样我就可以在ASC或DESC中获得排序查询。我做的是
$ order = ASC;
if ($_GET['sort'] == 'Val'){
$query .= " ORDER BY val" ."$order";
}
并编写
的逻辑if($order==ASC){$order= DESC}
反之亦然。但它不起作用。表格未显示。一些语法问题?
任何人都可以提供帮助。 ?
答案 0 :(得分:2)
你需要引入一个空间。否则SQL将读取ORDER BY valDESC
所以:
$query .= " ORDER BY val " ."$order";
或更紧凑:
$query .= " ORDER BY val $order";
您只需打印即可检查您的查询是否符合预期
echo $query ;
这个简单的调试可以帮助您解决问题
答案 1 :(得分:0)
使用:
$query .= " ORDER BY val $order";
列名和排序顺序之间需要一个空格。您的代码正在生成:
ORDER BY valASC
如果你在尝试执行它之前只做了echo $query;
,你肯定会看到这个。在发布之前请先做一些基本的,明显的调试。