Javascript Mysql查询检索帖子并根据特定日期间隔进行过滤
您好,我希望在一个页面中集成一个下拉选择/选项,该页面存储一组日期间隔,通过相应的选择选项过滤mysql查询。不确定这是否是重复的,但在这里找不到类似的内容 我从中检索创建日期的表有一个timestamp列 这应该是一个Mysql查询,还是用javascript处理?最佳解决方案是什么 例如: 邮政过滤器 一直 过去的一天 上周 上个月 去年 柱头 创建日期:2017年2月21日 培根ipsum dolor amet短排骨kevin ribeye肉丸肉片mignon猪里脊排骨猪肚牛里脊鹿肉 柱头 创建日期:2017年2月18日 培根ipsum dolor amet短排骨kevin ribeye肉丸肉片mignon猪里脊排骨猪肚牛里脊鹿肉 柱头 创建日期:2016年1月26日 培根ipsum dolor amet短排骨kevin ribeye肉丸肉片mignon猪里脊排骨猪肚牛里脊鹿肉 柱头 创建日期:2016年3月15日 培根ipsum dolor amet短排骨kevin ribeye肉丸肉片mignon猪里脊排骨猪肚牛里脊鹿肉Javascript Mysql查询检索帖子并根据特定日期间隔进行过滤,javascript,php,mysql,select,filtering,Javascript,Php,Mysql,Select,Filtering,您好,我希望在一个页面中集成一个下拉选择/选项,该页面存储一组日期间隔,通过相应的选择选项过滤mysql查询。不确定这是否是重复的,但在这里找不到类似的内容 我从中检索创建日期的表有一个timestamp列 这应该是一个Mysql查询,还是用javascript处理?最佳解决方案是什么 例如: 邮政过滤器 一直 过去的一天 上周 上个月 去年 柱头 创建日期:2017年2月21日 培根ipsum dolor amet短排骨kevin ribeye肉丸肉片mignon猪里脊排骨猪肚牛里脊鹿肉 柱
是的,嗯,由ajax处理
<select id="select">
<option value="all">All Time</option>
<option value="day">Past Day</option>
<option value="weel">Past Week</option>
<option value="month">Past Month</option>
<option value="year">Past Year</option>
</select>
<script>
$(document).ready(function(){
$("#select").change(function() {
$.ajax({
type: 'post',
url: "getSql",
data: { $(this).val() },
success: function($response) {
response = $.parseJSON(reponse);
$.each(response, function(k, v) {
// key and value
$("YOUDIV").append(VALUE)
});
}
});
})
})
</script>
答案是:这取决于用例。你必须意识到你正在做的权衡: 在JavaScript中实现它意味着您将一次性检索整个MySQL表,并在浏览器中执行过滤 查询执行速度会很快,因为不需要数据库评估任何条件 您只需要往返数据库一次 需要通过线路发送的数据量可能会很大 浏览器需要保存在内存中的数据量可能会很大,因此数据传输速度会较慢 如果需要过滤大量数据,浏览器中的执行可能会很慢 在MySQL查询中实现它意味着您将只检索表中与您的条件匹配的部分,而不必在浏览器中执行过滤 查询执行速度将较慢,因为数据库必须评估条件 您可能需要多次往返数据库 需要通过导线发送的数据量将更小,因此数据传输将更快 浏览器需要保存在内存中的数据量将更小 由于不需要应用过滤逻辑,因此浏览器中的执行速度会很快
从上面的列表中可以看出,表的大小起着至关重要的作用。如果表很小,我会选择JavaScript方法。如果表很大或可能会变大,我会选择查询方法。Robby,也许我有点过火了。所有的记录都会显示在页面上,但是为了让查看页面的人更方便,我想实现过滤系统。所以不管怎样,我仍然要去数据库检索所有记录,只是需要一种方式让查看器过滤页面上呈现的内容。从我从你的帖子中读到的,那么就没有必要再去db做一次或几次额外的旅行了。@Sergio说得对。在这种情况下使用JavaScript解决方案。谢谢Robby。我如何利用db中的时间戳将实际时间戳(即:2017-02-18 03:21:10)转换为表示前几天(即:4天前)的数字输出到div中?在查询中有这样的计算吗?我想我已经计算出来了。。。通过运行此查询,选择timestampdiffDAY,now,dateCreated as days FROM PostsHank you Rafael。由于所有帖子/内容都已经从数据库中提取出来并显示在页面上,是否需要对数据库进行另一次查询?我该如何利用帖子的时间戳来过滤帖子,使其仅在查看器选择的日期间隔内显示帖子?是的,每次更改或选择并填充html时都会进行查询,但不会重新加载页面