2013-10-03 40 views
1

我有一个数据驱动的横幅系统,运行得非常好。mysql查询个别行上的开始日期和结束日期

它运行关闭两个表

banner_frames 这包含各行的所有横幅帧和包括图像,文本和帧布局信息。

banner_frameset 这包含将查询引入查询的banner_frames行作为逗号分隔值的分组信息。

有一个php变量$bannerpageid如果在页面上设置,则运行此查询。

mysql_select_db($database_banners, $banners); 
$query_banner_frameset = "SELECT banner_frameset.*, banner_frames.* 
FROM banner_frameset, banner_frames 
WHERE banner_frameset.bp_ID = $bannerpageid 
AND FIND_IN_SET(banner_frames.bf_ID, banner_frameset.bp_frames) 
AND banner_frames.bf_live = 1 
ORDER BY FIND_IN_SET(banner_frames.bf_ID, banner_frameset.bp_frames)"; 
$banner_frameset = mysql_query($query_banner_frameset, $banners) or die(mysql_error()); 
$row_banner_frameset = mysql_fetch_assoc($banner_frameset); 
$totalRows_banner_frameset = mysql_num_rows($banner_frameset); 

我想修改查询以包括针对每一帧行的可选起始日期和/或期满日期,只显示受影响的帧,如果当前的日期/时间比设定的条目小于或大于任何横幅框架行。

的开始日期和到期日的banner_frame列: bf_datestartbf_dateexpire

我想实现的是在拉所有banner_frames.bf_IDbanner_frameset.bp_frames上市,要么省略或有标题框行依赖于是否设置开始日期和到期日期中的一个或两个,同时仍检索所有其他行,其中开始或到期都设置为NULL

执行此查询的最有效方法是什么?查询将被修改,还是需要在我的do/while loo之前将它作为单独的if语句运行P +

我希望这是有道理的。

非常感谢

回答

0

添加where子句包括起始和结束日期作为变量,但初始化开始和结束日期的min/max mysql supports不管什么日期类型所使用。默认情况下,由于默认日期是全包的,查询仍然可以正常运行。根据需要更改开始/结束日期变量。

相关问题