0

タイプ 1、2、または 3 のいずれかで、各イベントに日付があるテーブルから結果を取得しようとしています。将来のイベントのみを表示して並べ替えようとしています。以下のコードは、日付による並べ替えを除いて、ちょっと機能しています。イベントがデータベースに入力された順序に基づいて並べ替えているだけです。

$sql = " SELECT * 
           FROM fitness 
          WHERE type = '3' 
            AND date >= CURRENT_DATE() 
         ORDER BY 'date' ASC";

助けてくれてありがとう!

4

2 に答える 2

0

一重引用符で囲まれた 'date' は、リテラル テキスト文字列の日付を意味します。

一重引用符を外します。

DATEまた、日付列が、DATETIME、またはTIMESTAMPアイテムであるかどうかはわかりません。それがDATEアイテムの場合、イベントの多くが同じ日付である場合、イベントを区別することはあまりありません.

最後にDATE、予約語です。列名に使用して MySQL を困惑させている可能性があります。私があなただったら、それを変えるでしょう。

于 2013-02-25T00:51:27.157 に答える
0

試す:

$sql = "SELECT * 
        FROM fitness 
        WHERE type = '3' 
        AND date >= CURRENT_DATE() 
        ORDER BY date ASC";

date を一重引用符で囲んでいないことに注意してください。それでもうまくいかない場合は、次の方法を試してください。

$sql = "SELECT * 
        FROM fitness 
        WHERE type = '3' 
        AND `date` >= CURRENT_DATE() 
        ORDER BY `date` ASC";

この場合、一重引用符の代わりにバックティック文字 ` が使用されます。これは、「date」が予約語であるためです。

于 2013-02-25T00:52:04.410 に答える