PHP 分页删除搜索词并恢复显示所有结果,修复了吗?

标签 php mysql

搜索特定类(class)后,结果会正确显示,但一旦我更改页面,它就会恢复显示所有可用结果。如何保留搜索词结果?

这是代码

<?php

$con = mysqli_connect("localhost", "root", "root", "courses");

// $total = mysqli_query($con, "SELECT count(title) as total")->fetch()['total']);


if(isset($_GET['searchword'])){
$searchword = $_GET['searchword'];
}
else {
$searchword = "";
}

$result = mysqli_query($con, "SELECT count(title) FROM course WHERE title LIKE '$searchword%'");
$row = mysqli_fetch_row($result);

// Total rows.
$rowstotal = $row[0];

//pages
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = isset($_GET['per-page']) && $_GET['per-page'] <= 100 ? (int)$_GET['per-page'] : 10;

$start = ($page > 1) ? ($page * $perPage) - $perPage : 0;

$pages = $rowstotal / $perPage;

$sql = "SELECT * FROM course WHERE title LIKE '%$searchword%' ORDER BY title ASC LIMIT {$start},{$perPage}";

$query = mysqli_query($con, $sql);

$resultsText = "$rowstotal results";

$resultsList = '';

while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
   $courseId = $row["id"];
   $courseAward = $row["award"];
   $courseName = $row["title"];
   $courseDetails = $row["summary"];
   $resultsList .= '<a href="course-page.php?id='.$courseId.'">'.$courseAward.' '.$courseName.'</a> <br>'.$courseDetails.'<br/>';
}

mysqli_close($con);

?>







    <!DOCTYPE html>
    <html lang="en">
  <head>
    <title>Courses</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="style.css">
  </head>
  <body>

    <nav class="navbar navbar-default navbar-static-top navbar-inverse">
      <div class="container">
        <div class="navbar-header">
          <a class="navbar-brand" href="#">
            <img alt="Napier" src="">
          </a>
        </div>
      </div>
    </nav>

    <div class="container">

        <!-- Search -->
        <form method="GET">
           <input type="text" class="form-control" name="searchword" placeholder="Search" value="<?php echo $searchword ?>" style="width:30%;"><br>
        </form>

        <!-- Results -->
        <div class="results">
          <p></p>
          <p>Showing <?php echo $perPage; ?> of <?php echo $resultsText; ?></p>
          <p id="content"><?php echo $resultsList; ?></p>
        </div>
        <div class="pagination">
            <?php for($x = 1; $x <= $pages; $x++): ?>
                <a href="?page=<?php echo $x; ?>&per-page=<?php echo $perPage; ?>"<?php if($page === $x) { echo ' class="selected"'; } ?>><?php echo $x; ?></a>
            <?php endfor; ?>
        </div>


    </div>

    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.3.min.js"></script>

  </body>
</html>

最佳答案

您的页面链接不保留 searchword 参数。改变这个:

<a href="?page=<?php echo $x; ?>&per-page=<?php echo $perPage; ?>"<?php if($page === $x) { echo ' class="selected"'; } ?>><?php echo $x; ?></a>

为此:

<a href="?page=<?php echo $x; ?>&per-page=<?php echo $perPage; ?>&searchword=<?php echo $searchword; ?>"<?php if($page === $x) { echo ' class="selected"'; } ?>><?php echo $x; ?></a>

关于PHP 分页删除搜索词并恢复显示所有结果,修复了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36635164/

相关文章:

php - 一个带有两个提交按钮和每个按钮的不同操作的表单

php - 如何从sql查询创建唯一的数据库名称

PHP Swagger 和 Yii

mysql - 将 JSON 字符串插入 MySQL 列 UTF-8

php - 维基词典 - 我无法获取本地工作副本

php - 尝试使用表单将信息上载到数据库时,MySQL语法错误

php - Angular/Laravel - 从 mysql 数据库输出 json 数据

mysql - 获取数据库中表的最后更新时间

MySQL 从查询中设置变量并在另一个查询中使用它

mysql - 解释 self 加入