0

我试图在 php 中将一个变量连接到我的 sql 查询,以根据该变量对我的表进行排序。例如:

if ($_GET['sort'] == 'Val'){
   $query .= " ORDER BY val";
}

我需要一个变量 $sortorder 与此查询连接。这样我就可以在 ASC 或 DESC 中获得排序查询。我所做的是

$订单 = ASC ;

if ($_GET['sort'] == 'Val'){
   $query .= " ORDER BY val" ."$order";
}

并编写逻辑

if($order==ASC){$order= DESC}

反之亦然。但它不起作用。表不显示。一些语法问题?

任何人都可以在这方面提供帮助。?

4

2 回答 2

2

你需要引入一个空间。否则 SQL 将读取ORDER BY valDESC

所以:

$query .= " ORDER BY val " ."$order";

或更紧凑:

$query .= " ORDER BY val $order";

您可以通过简单地打印来检查您的查询是否符合预期

echo $query ;

这个简单的调试可以帮助您解决问题

于 2013-09-19T01:24:13.327 回答
0

采用:

$query .= " ORDER BY val $order";

您需要在列名和排序顺序之间留一个空格。您的代码正在生成:

ORDER BY valASC

如果您只是echo $query;在尝试执行它之前就这样做了,那么您肯定会看到这一点。请在此处发布之前进行一些基本的、明显的调试。

于 2013-09-19T01:24:22.953 回答