PHP订单即将到来的日期

Tim*_*mur 4 php mysql

我upevents在这个表中有一个表属性是:

  1. ID
  2. 事件名称
  3. ARTISTNAME
  4. 开始日期
  5. 结束日期

我需要选择并显示3个事件,哪个日期最接近今天的日期.

例如今天的日期是2016年3月8日,所以我需要显示第3,第4和第5.

考试日期:第一个赛事开始日期-2/26/2015

考试日期:第二个赛事开始日期-2/25/2015

考试日期:第3场比赛开始日期3/10/2016

考试日期:第4场比赛开始日期3/12/2016

考试日期:第5场比赛开始日期2016年3月19日

$sql =  "SELECT * FROM upevents ORDER BY ABS(DATEDIFF(NOW(), 'StartDate')) LIMIT 3";
Run Code Online (Sandbox Code Playgroud)

使用上面的选择查询,它显示第1,第2和第3.

jer*_*oen 5

您正在使用错误的引号,现在StartDate被解释为字符串值.

你需要:

$sql =  "SELECT * FROM upevents ORDER BY ABS(DATEDIFF(NOW(), `StartDate`)) LIMIT 3";
                                                             ^  here   ^
Run Code Online (Sandbox Code Playgroud)

虽然您不需要在此引用列名称,因为它不是保留字.

  • 并且startDate> NOW().排除过去的事件. (2认同)
  • 我不确定OP想要什么@SirajulHaq,他要求最近的3个赛事. (2认同)