1
$result=mysql_query("SELECT * FROM attendance WHERE date Between '$start_date' and '$end_date' order by date asc") or die(mysql_query);

上記の mysql クエリは、ユーザーが選択した 2 つの日付の間にデータベース内のすべてのデータを取得することです。以下に示すように、私のデータベースにテーブルの出席があるとしましょう

2009-07-01    3
2009-07-03    4
2009-07-04    5
2009-07-06    7
2009-07-07    6
2009-07-10    8
  1. $start_date = "2009-07-01" および $end_date = "2009-07-10" の場合、選択した 2 つの日付の間のすべてのデータが表示されます

    2009-07-01    3
    2009-07-03    4
    2009-07-04    5
    2009-07-06    7
    2009-07-07    6
    2009-07-10    8
    

(両方の日付がデータベースに存在するため、これは成功していることに気付きました)。

  1. $start_date = "2009-07-02" および $end_date = "2009-07-09" の場合、表示されると予想していたのは

    2009-07-03    4
    2009-07-04    5
    2009-07-06    7
    2009-07-07    6
    

残念ながら、出力は私が期待したようにはなりません。これは、両方の日付がデータベースに存在しないために発生します。クエリに何か問題があることはわかっています。誰かが私にそれを理解するのを手伝ってくれるなら、それは素晴らしいことです. ありがとうございます!

4

1 に答える 1

-1
$result=mysql_query("SELECT * FROM attendance WHERE DATE(date) Between '$start_date' and '$end_date' order by date asc") or die(mysql_query);

また

$result=mysql_query("SELECT * FROM attendance WHERE DATE(date) >='$start_date' and DATE(date) <='$end_date' order by date asc") or die(mysql_query);
于 2013-09-14T14:29:07.917 に答える