我试图按照X列名称...
从我的查询中过滤我的结果我有以下......
$sth = $conn->prepare("SELECT * FROM directory
WHERE user_active != ''
AND County = :county
ORDER BY' . $row['Date'] .'" );
我想获取所有结果并从日期列中的值订购它们,这将存储为XX / XX / XXXX
任何人都可以看到我做错了什么?
答案 0 :(得分:1)
什么是$row['Date']
?您只能按列名称或列索引(1,2,3,...)进行排序,如
$sth = $conn->prepare("SELECT * FROM directory WHERE user_active != '' AND County = :county ORDER BY date" );
此外,您的查询错过了ORDER BY后面的空格。
答案 1 :(得分:0)
Gordon和AmShegar都为您提供了一条线索,说明为什么这不起作用。
要按日期订购结果,只需转到:
SELECT <fields>
FROM <table>
ORDER BY <datefield>
您可以使用“ASC”或“DESC”作为后缀,具体取决于您是希望使用较早的日期还是较新的日期。这都假定日期字段实际上是日期字段。
答案 2 :(得分:0)
尝试这样
$sth = $conn->prepare
("SELECT
*
FROM directory
WHERE user_active != ''
AND County = :county
ORDER BY '.$row['Date'].'
DATE_FORMAT('$row['Date']','%m-%d-%Y'");
答案 3 :(得分:0)
按特定字段值排序必须FIELD( )
在你的例子中
$sth = $conn->prepare("SELECT * FROM directory
WHERE user_active != ''
AND County = :county
ORDER BY FIELD( date , '.$row['Date'].') " );
^---------------------------------column name
^^-------------------field value