2012-04-26 12 views
0

私は昨日からのニュースを表示したいと思います。私のクエリは次のようになります。それを行う魔法の行がありますか?MySQLの行を1日以上表示する方法はありますか?

$query = ' 
    SELECT a.*, 
      CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) 
              ELSE a.id END as slug, 
      CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(":", b.id, b.alias) 
              ELSE b.id END as catslug, 
      b.title as category_title, 
      b.alias as categoryalias, 
      b.params as categoryparams, 
      u.name AS author 
    FROM #__content as a 
    LEFT JOIN #__categories as b ON a.catid = b.id 
    LEFT JOIN #__users AS u ON u.id = a.created_by 
    WHERE ' . $where. ' 
    ORDER BY ' . $orderby. ' 
    LIMIT ' . $limit; 
+0

あなたの '$ where'変数には何がありますか?あなたの日付の列は何ですか? – bfavaretto

答えて

1

"魔法の"コード行は、WHERE句に入れる必要があります。

たとえば、日付がYYYY-MM-DD

$query .= 'WHERE b.created_date = '.$db->quote(date('Y-m-d', strtotime('-1 day'))).' 

の場合のみです。あなたの日付列がYYYY-MM-DDの場合:

$query .= 'WHERE DATE_FORMAT(b.created_date,"%Y-%m-%d") = '.$db->quote(date('Y-m-d', strtotime('-1 day'))).' 
関連する問題