繁体   English   中英

查询少于和大于时间

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM