我正在使用wordpress,我已经创建了一些自定义函数。它们工作正常,现在我正在为查询添加排序。
function select_category_events($category, $order) {
global $wpdb;
$table_name = $wpdb->prefix."table";
$sql = $wpdb->get_results("select * from $table_name where category = '" . $category . "' AND active = '1' ORDER BY '" . $order . "'");
return $sql;
}
如果我删除ORDER BY并且只有:
$sql = $wpdb->get_results("select * from $table_name where category = '" . $category . "' AND active = '1'");
工作正常。如果我用'name'或一个字段替换$ order来排序,它运行正常,就在我使用变量传递它时它只是忽略它。它仍然显示结果,它们只是未分类。这是我如何调用该函数。
$order = 'name';
$events = select_category_events($category, $order);
$ category有一个有效的类别,正如我所说的,它运行正常,只是当变量被用于排序时。我的语法不正确,还是应该以不同的方式解决这个问题?
答案 0 :(得分:2)
删除引号,您希望按列排序,而不是按字符串
排序ORDER BY $order
答案 1 :(得分:0)
没有问题,请将您的查询修改为: -
"select * from $table_name where category = '$category' AND active = '1' ORDER BY '$order' ";
如果工作正常,请将其标记为答案,如果没有,请告知我在运行此查询后您得到了什么......
答案 2 :(得分:0)
你必须使用这样的查询: -
$sql = $wpdb->get_results("select * from $table_name where category = '" . $category . "' AND active = '1' ORDER BY " . $order);