Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mysql查询检索帖子并根据特定日期间隔进行过滤_Javascript_Php_Mysql_Select_Filtering - Fatal编程技术网

Javascript Mysql查询检索帖子并根据特定日期间隔进行过滤

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猪里脊排骨猪肚牛里脊鹿肉 柱

您好,我希望在一个页面中集成一个下拉选择/选项,该页面存储一组日期间隔,通过相应的选择选项过滤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猪里脊排骨猪肚牛里脊鹿肉


是的,嗯,由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时都会进行查询,但不会重新加载页面