簡體   English   中英

MySQL查詢WordPress日活動

[英]MySQL query for wordpress day events

我是WordPress(PHP)開發人員,但是我並沒有做很多復雜的MySQL查詢。 我正在活動網站上工作,並希望創建過濾器:用戶應能夠按照以下條件過濾事件:今天,明天,本周末,接下來的7天,選擇您的日期。

下面是用於過濾事件的元數據,可以在meta_key列的post meta db表中找到。

start_date
end_date
times
recurring_event
days
sold_out
cancelled

該表如下所示:

id post_id  meta_key         meta_value
1   12      start_date       20140923
2   22      days             a:4:{i:0;s:6:"monday";i:1;s:9:"wednesday";i:2;s:6:"friday";i:3;s:8:"saturday"}           
3   12      end_date         20141003
4   78      recurring_event  0
5   34      times            24 Hours
6   12      days             a:2:{i:0;s:6:"monday";i:1;s:7:"tuesday";}
7   67      start_date       20140906
8   45      end_date         20141108

我可以使用哪些MySQL查詢來獲取今天,明天,周末和7天的事件。

我對SQL不夠了解,因此,在這種情況下,我將使用PHP計算日期,然后使用SQL進行查詢。

這些頁面為我提供了以下幫助:

http://php.net/manual/fr/function.date.php

http://php.net/manual/fr/function.mktime.php

1)對於今天,無需計算,只需獲取今天的日期並進行查詢:

<?php
$today = date('Y-m-d',mktime());
$result = mysqli_query($connect, 'SELECT * FROM events WHERE start_date = "'.$today.'"');
?>

2)明天,計算明天:

<?php
$tomorow = date('Y-m-d',mktime(0, 0, 0, date("m")  , date("d")+1, date("Y")));
$result = mysqli_query($connect, 'SELECT * FROM events WHERE start_date = "'.$tomorow.'"');
?>

3)7天后,計算7天后日期:

<?php
$day7 = date('Y-m-d',mktime(0, 0, 0, date("m")  , date("d")+7, date("Y")));
$result = mysqli_query($connect, 'SELECT * FROM events WHERE start_date = "'.$day7.'"');
?>

3)周末,周末來了:對於這個,我不能這么快寫,對不起。

說明:

date('Ym-d',mktime()); 今天給出2014-09-04美元。

因為mktime()為空,所以mktime()基於服務器時間,沒有參數。

Y => year如####

m =>月,如##

d =>天像##

date('Ym-d',mktime(0,0,0,date(“ m”),date(“ d”)+ 1,date(“ Y”)))); 給2014-09-05

這次我們為mktime()提供了參數,0小時0分鍾0秒0,09,04 + 1,2014。

date(“ m”)= 09

date(“ d”)+ 1 = 04 + 1 = 05

日期(“ Y”)= 2014

希望對您有所幫助。 對不起,但是我不知道如何將PHP放入Wordpress。 尼爾斯

對於周末和接下來的7天,您可能必須混合使用sql和php

今天

 SELECT * from  tablename where start_date=CURDATE();

明天

 SELECT * from  tablename where start_date = CURDATE()+INTERVAL 1 DAY;

對於周末,您必須首先找到周末日期。

使用

SELECT DAYOFWEEK

您可以找到當前日期。 因此,如果您有一個數組,請與之匹配並添加到達星期六和星期日的天數。 我不知道其他簡單的方法

接下來的7天

 SELECT * from  tablename where start_date >= CURDATE() and 
start_date=< CURDATE()+INTERVAL 7 DAY;

使用教程並嘗試一下:-)

http://dev.mysql.com/doc/refman/5.5/zh-CN/date-and-time-functions.html#function_curdate

暫無
暫無

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

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