0

我有一个查询,它接受一个字符串 '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
4

1 回答 1

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

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

于 2013-09-13T04:32:29.217 回答