Datatables'Search'搜索mysql表中的所有行,忽略where条件

时间:2014-11-17 07:09:29

标签: jquery datatables jquery-datatables

我正在使用Datatables进行服务器端处理。 我的数据表从我的表中的视图中选择行

username ='$session'

$ session存储当前用户的用户名。 这工作正常,并正确显示$ session的所有行,但当我尝试搜索时,它会显示我表中所有用户的结果。

我在ssp.class.php中使用$ where变量来执行限制,它运行正常。

我的问题是如何将搜索限制为sql条件?

2 个答案:

答案 0 :(得分:0)

您不需要将参数传递给您的php脚本。 dataTables将为您执行此操作,并将分页,排序和过滤信息发送到您的脚本。 (只需查看(firebug)控制台中的请求)。

在ssp.class.php中有一个名为static function filter的函数,它为您生成一个mysql WHERE查询。

在此函数的末尾,使用return $where;

返回where子句

你想要做的是添加如下内容:

$where.= ' and USER = '.$username.' ';

返回$where

之前

(注意空白以创建/确认有效查询!)

USER应该是数据库中的字段,而$username是您会话中的值。

如果两者匹配,您的数据将被正确过滤。

我只能给你这个通用的解释,因为我对你的数据库结构一无所知,会话中存储了什么,或者你使用的是什么版本的dataTables。对于调试,将$ where写入日志,您将看到发生了什么。

但这应该会给你提示如何继续。

答案 1 :(得分:0)

再次完成了流程,我意识到WHERE条件没有附加到全局搜索部分。

我将条件添加到examples / server_side / scripts / ssp.class.php的第153行,它解决了问题。

$globalSearch[] = "`".$column['db']."` LIKE ".$binding." AND username = '$session'";