PDO分页在显示第一个结果后未显示数据

时间:2017-07-01 19:47:07

标签: php mysql search pdo pagination

我正在尝试创建一个分页页面,该页面每页只显示一个搜索查询结果,但在显示第一个结果后,下一个结果或页面会给出一个错误,表明没有输入有效输入{{3 }} First Result Shows right stuff

/api/token

1 个答案:

答案 0 :(得分:1)

  

...显示第一个结果后,下一个结果或页面会给我一个错误,表明没有输入有效输入

那是因为当你点击第2页,第3页......页面(从第1页导航后)时,$_POST数组将为空,即$_POST['search']赢了'设定。由于您未使用表单发送任何敏感数据,请在表单的GET属性中使用POST代替method,如下所示:

<form action="..." method="get">

并获取用户输入的数据:

if (!empty($_GET['search'])) {
    $search = $_GET['search'];
    ...

随后,您需要在每个分页链接中附加该搜索查询,以便在您从一个页面跳到另一个页面时搜索查询可用。

// your code
for($i=1; $i<=$page_count; $i++){
    if($i==$page){
        $per_page_htm .= "<a href='".$self."?r=".$i."&search=".urlencode($search)."' class='btn-page current'>".$i."</a>";
    }else{
        $per_page_htm .= "<a href='".$self."?r=".$i."&search=".urlencode($search)."' class='btn-page'>".$i."</a>"; 
    }
}
// your code

旁注:了解prepared statement,因为您的查询现在容易受到SQL注入攻击。另请参阅how you can prevent SQL injection in PHP