我有一个运行良好的数据驱动横幅系统。
它跑了两张桌子
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_datestart
和bf_dateexpire
我想要实现的是拉入所有banner_frames.bf_ID
列出的banner_frameset.bp_frames
内容并忽略或获取横幅框架行,具体取决于是否设置了开始日期和到期日期中的一个或两个,同时仍检索其中一个/或两个的所有其他行start 或 expiry 设置为 NULL
执行此查询的最有效方法是什么,可以修改上述查询还是需要在我的 do/while 循环之前将其作为单独的 if 语句运行?
我希望这是有道理的。
非常感谢