我正在使用Datatables进行服务器端处理。 我的数据表从我的表中的视图中选择行
username ='$session'
$ session存储当前用户的用户名。 这工作正常,并正确显示$ session的所有行,但当我尝试搜索时,它会显示我表中所有用户的结果。
我在ssp.class.php中使用$ where变量来执行限制,它运行正常。
我的问题是如何将搜索限制为sql条件?
答案 0 :(得分:0)
您不需要将参数传递给您的php脚本。 dataTables将为您执行此操作,并将分页,排序和过滤信息发送到您的脚本。 (只需查看(firebug)控制台中的请求)。
在ssp.class.php中有一个名为static function filter
的函数,它为您生成一个mysql WHERE查询。
在此函数的末尾,使用return $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'";