Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL where子句获取下周事件_Php_Mysql - Fatal编程技术网

Php MySQL where子句获取下周事件

Php MySQL where子句获取下周事件,php,mysql,Php,Mysql,我的表格包含事件开始日期和事件结束日期 我不知道如何安排下周的活动。以下变量具有下周开始日期和结束日期 $day = date('w'); $next_week_start = date('Y-m-d', strtotime('+'.(7-$day).' days')); $next_week_end = date('Y-m-d', strtotime('+'.(7+(6-$day)).' days')); 我想知道下周有哪些活动 这就是我现在拥有的。此处,EVENT\u SCHEDULE是

我的表格包含事件开始日期和事件结束日期

我不知道如何安排下周的活动。以下变量具有下周开始日期和结束日期

$day = date('w');
$next_week_start = date('Y-m-d', strtotime('+'.(7-$day).' days'));
$next_week_end = date('Y-m-d', strtotime('+'.(7+(6-$day)).' days')); 
我想知道下周有哪些活动

这就是我现在拥有的。此处,
EVENT\u SCHEDULE
是表名,
EVENT\u date
是事件开始日期

$where .= " AND ( ( " . EVENT_SCHEDULE . ".event_date >= '" . $next_week_start . "' AND " . EVENT_SCHEDULE . ".event_date <= '" . $next_week_end . "' ) OR ( " . EVENT_SCHEDULE . ".event_enddate >= '" . $next_week_start . "' AND " . EVENT_SCHEDULE . ".event_enddate <= '" . $next_week_end . "' ) ) ";

$where.=”和((“.EVENT_SCHEDULE.”.EVENT_date>=”)“$next_week_start.”和“.EVENT_SCHEDULE.”。EVENT_date=”“$next_week_start.”和“.EVENT_SCHEDULE”。".event\u enddate我不知道字段event\u date的数据类型,但如果是Unix时间,则不应创建人类可读的时间字符串,而应创建Unix时间戳。但这取决于您的数据库方案。您没有提供实际问题。您提供的where子句对我来说很好。

假设开始和结束变量计算正确 你应该能够使用

        $where .= "AND (" . 
EVENT_SCHEDULE . ".event_date <= '".$next_week_end."' AND " . 
EVENT_SCHEDULE . ".event_enddate >='" . $next_week_start."') ";
$where.=”和(“)。
事件时间表。“.EVENT_date=””“$next_week_start。”)”;
下面是相同的代码,但是在MySQL服务器上完成了日期计算——我假设这一周是周一到周日

$where .= "AND (" . 
    EVENT_SCHEDULE . ".event_date <= date(Now()+interval 14-date_format(Now(),'%w') day) AND " . 
    EVENT_SCHEDULE . ".event_enddate >= date(Now()+interval 8-date_format(Now(),'%w') day)) ";
$where.=”和(“)。
事件日程。“.EVENT_date=日期(Now()+间隔8-date格式(Now(),'%w')day))”;

您能用sql处理一些示例数据,并告诉我们您现在得到了什么以及您希望得到什么吗?where子句显示您的事件有开始和结束日期,因此我假设您需要所选周内部分或全部的所有事件。您可能需要编辑您的question@Naruto谢谢你的提示。下次我会的 that@DobromirVelev你的答案很好:)关于日期计算-我从来没有看到它这样做,虽然它的工作。但是,为了避免PHP服务器和MySQL服务器之间的时间差,你可以考虑做MySQL中的所有日期计算-我将修改我的答案,以显示它是如何doWHERE子句不会捕获在开始之前已经启动的事件。本周的比赛结束后都很活跃,所以我想这确实是他的问题,还没想到呢!