查询在SQL中正确排序,但在Drupal中没有

时间:2013-09-12 17:59:15

标签: drupal mysqli drupal-6

我有一个带有字符串'noticeDate'的查询,并将其转换为按日期排序的日期。当我在phpmyadmin中运行它而不是在drupal

中运行时,查询工作正常

这是我的查询

    <h3 style="text-align: center;">Public Notices</h3>
<?php
$query="SELECT `noticeTitle`, `noticeDate`, `filename`, STR_TO_DATE(`noticeDate`, '%m/%d/%Y') as filedate, `filepath` 
        FROM `public_notice` 
        ORDER BY filedate DESC
        LIMIT 5";
$results = db_query($query);

while ($row = db_fetch_array($results)) {
    echo '<tr>';
    echo '<td><u><a href=http://website.com/'. $row["filepath"] . '>' .$row["noticeDate"].'</u>- '.$row["noticeTitle"]. '</a></td><br />';
    echo '</tr>';
}
?>

在phpmyadmin中,它完美地命令5个日期 - 但是在drupal中它看起来像这样。

08/04/2009- sometext
09/14/2009- sometext
01/28/2009- sometext
01/23/2009- sometext
02/25/2009- sometext

1 个答案:

答案 0 :(得分:1)

我认为问题在于Drupal替换参数/命名参数的方式。请参阅db_query的第二个参数。

您应该重构代码以使用db_select。 https://api.drupal.org/api/drupal/includes!database!database.inc/function/db_query/7

https://api.drupal.org/api/drupal/includes!database!database.inc/function/db_select/7

要添加STR_TO_DATE功能,请使用AddExpression功能。 https://api.drupal.org/api/drupal/includes!database!select.inc/function/SelectQuery%3A%3AaddExpression/7

使用这两个肯定会解决您的问题。祝你好运。