繁体   English   中英

如何为搜索结果创建分页

[英]How do i create pagination for my search results

我正在尝试为搜索结果创建分页 如果我放弃搜索功能(即不包括if (isset($_POST['submit-search']))LIKE %search% ),但一旦包含了这些功能,就可以创建工作分页,如在下面的代码中,当我单击下一页时,只会得到一个空白页,就像sql术语未保留在内存中一样。

<?php 
    if (isset($_POST['submit-search'])) {
        $results_per_page = 2;      
        $search = mysqli_real_escape_string($conn, $_POST['search']);
        $sql = "SELECT * FROM article WHERE a_title LIKE '%$search%' OR a_text LIKE '%$search%'";
        $result = mysqli_query($conn, $sql);
        $queryResult = mysqli_num_rows($result);
        $number_of_pages = ceil($queryResult/$results_per_page);    

// determine which page number visitor is currently on   
if (!isset($_GET['page'])) {
       $page = 1;
    } else {
       $page = $_GET['page'];
    }

       $this_page_first_result = ($page-1)*$results_per_page;
       $sql = "SELECT * FROM article WHERE a_title LIKE '%$search%' OR a_text LIKE '%$search%'LIMIT ".$this_page_first_result.",".$results_per_page." ";
       $result = mysqli_query($conn, $sql);

// echoing the search results
while ($row = mysqli_fetch_assoc($result)) {

    echo "<h3>".$row['title']."</h3>
          <p>".$row['text']."</p>";
}

// echoing the pagination    
    for ($page=1;$page<=$number_of_pages;$page++) {
        echo "<li><a href='search_results.php?page=".$page."'>".$page."</a></li>";  
    }   
        }
    ?>

html

<form action="search_results.php" method="POST">
        <input type="text" name="search"placeholder="Search">
        <button type="submit" name="submit-search">go</button>
</form>

逻辑是错误的。

// this code is only executed on the initial search.
if (isset($_POST['submit-search'])) {

当用户转到下一页时:

echo "<li><a href='search_results.php?page=".$page."'>".$page."</a></li>";

仅给出页码,并且由于未发布任何内容而丢失了搜索参数,因此第一个if语句将不再运行。

您可以执行以下操作:

echo "<li><a href='search_results.php?page=".$page."&search=$search'>".$page."</a></li>";

和:

if(isset($_POST['submit-search']) || isset($_GET['search'])){
    $search = ...;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM