[英]Query with Less Than AND Greater Than time
请大家帮我检查一下我的语法是否正确。 使用此代码我没有任何错误,但是我只是想对我是否做对了一点意见。
我正在使用多站点Wordpress安装,并且正在检查特色博客是否已超过一天但少于一周。
/* Work out blog of the day */
$featured_id = get_option('featured_blog'); # Current ID
$featured_time = get_option('featured_time'); # Current Time
if($featured_time > time()-86400 && $featured_time < time()-604800) // more than 1 Day ago but less than a week
{
$query = "SELECT blog_id FROM `wp_blogs` WHERE public = '1' and archived = '0' and spam = '0' and deleted = '0' AND blog_id NOT IN ('".$featured_id."', '1','27') ORDER BY rand() limit 1";
$featured_id = $wpdb->get_var($query);
update_option('featured_blog', $featured_id);
update_option('featured_time', time());
}
根据http://codex.wordpress.org/Database_Description#Table:_wp_blogs,blog_id列为int,因此您不应将值括在引号中
select ... where ... and blog_id NOT IN (".$featured_id.", 1,27) ...
public
列, spam
列和deleted
列也是如此。
除此之外,这不是一个真正的问题,我无法发现任何语法错误。 但是与标题相反,您没有在查询中使用时间。
对于if()
语句,这将永远不会成为事实,因为$featured_time
不能同时为> now - 86400
和< now-604800
。 如果您希望条件如评论中所述,请说
if ($featured_time < time()-86400 && $featured_time > time()-604800)
在time()
line上或多或少像这样
0 now-604800 now-86400 1354618129
+----------+------------+--------------+
| | | |
1.1.1970 a week ago 24 hours ago now
因此,如果$featured_time
应该在一周前和一天前之间,则它必须大于一周前(> now-604800)并且小于一天前(<now-86400)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.