簡體   English   中英

MySQL查詢事件的日歷

[英]MySQL query the events for a calendar

我正在使用MySQL和PHP構建SaaS日歷。

前端javascript日歷庫為fullcalendar(每月視圖) http://fullcalendar.io/

我有一個名為events的mysql數據表,如下所示:

  • ID
  • ID_USER
  • BODY_NAME
  • BODY_START
  • BODY_END
  • 已經完成了
  • TIME_CREATED
  • TIME_UPDATED
  • TIME_DELETED

BODY_STARTBODY_END使用的是unix_timestamp。

然后,在我的PHP代碼中,我構建了一個查詢助手,該助手生成一個SQL,例如:

"SELECT * FROM `" . $this->_tableName . "` WHERE `ID_ACCOUNT` = '$_id_account' AND (( `BODY_START` >= 1424649600 AND `BODY_START` <= 1428278400 ) OR (`BODY_END` >= 1424649600 AND `BODY_END` <= 1428278400))";

fullcalendar提供的開始和結束時間戳參數。

有一個問題:

如果事件跨越當前月份,則不會顯示。

例:

  • 編號f8a58d0c8280db2340863a1ac7aa60b0
  • ID_USER e576c22ce89f38ee422ec818807b99b8
  • BODY_NAME test_event
  • BODY_START 1422720000
  • BODY_END 1428422400
  • IS_DONE 0
  • TIME_CREATED 1422845255
  • TIME_UPDATED 0
  • TIME_DELETED 0

如果執行查詢,則不會顯示此事件。

我怎樣才能解決這個問題? 謝謝。

如果我對您的理解正確,請將查詢簡化為(使用偽代碼):

  BODY_START <= month_end and BODY_END >= month_start

您上面的原始查詢查詢要求事件必須在一個月內開始或結束,但這實際上並不是您想要的-您希望該月任何部分都存在任何事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM