我有一个关于属性搜索的搜索表单,其中包含一些搜索结果的元素。例如地区,位置,城市,卧室等 提交表单后,我可以通过$ _post获取所有表单元素的值。问题是,当我将实现分页时,我将如何获得下一页上的元素值?我应该使用某种全局变量/数组或会话吗? 你推荐什么?
答案 0 :(得分:1)
要在下一页获取$ _post的值,您必须在分页链接中传递$ _post值。
例如,假设您有一个名为搜索的输入字段,您正在执行搜索。 所以你必须在每个分页链接上传递$ _POST ['search']。
<a href='search.php?page=2&search="'. $_POST['search'].'"'>Page 2</a>
现在在第2页,您可以获得$ _GET ['search']并在查询中使用它
=============================================== ===============
您也可以使用会话
在提交后获得$ _Post值时,启动会话并将其保存在会话变量中。在这种情况下,您不必在分页链接中传递该值
session_start();
$_SESSION['search'] = $_POST['search'];
现在,您可以在查询中直接使用$ _SESSION ['search']值。
但是对于每次新搜索都会使此会话变量为空,因此如果搜索字段没有任何搜索值,那么它就不会在数据库中搜索其旧值。
答案 1 :(得分:0)
我建议您在mysql查询中使用LIMIT。如第一页,如果你想要10个结果:
SELECT * FROM searchtable LIKE %%WHATEVER%% LIMIT 0,10
这会将结果限制为10。 对于第2页,你是圣人:
SELECT * FROM searchtable LIKE %%WHATEVER%% LIMIT 11,20
当然,您要做的是将限制设置为PHP的变量。 希望这有帮助!
答案 2 :(得分:0)
使用2个搜索查询,第1个为select count(1) from _table_ WHERE _where_
,第二个为{select _fields_ from table where _where_ LIMIT _limit_
,其中_limit_
为{{1 }}