PHP将搜索功能与分页相结合

时间:2012-09-17 17:31:42

标签: php search pagination

所以我正在尝试创建一个页面,我可以在其中显示数据库表的结果。你应该能够搜索并且应该有一些分页,因为有数千个结果。

我设法创建一个只有搜索的页面,并且工作完美。所以现在我需要知道如何将一些分页整合到其中。

的index.php

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
      <div id="container">
        <form action="" method="get">
        <input type="text" name="search" id="search" placeholder="Search" />
        <input type="submit" />
            </form>
        <?php include 'process.php'; ?>
      </div> <!-- /container -->
    <script src="js/jquery.js"></script>
    <script src="js/script.js"></script>
  </body>
</html>

process.php

<?php include 'dbconfig.php'; ?>
<?php include 'connect.php'; ?>
<?php   
$search = $_GET['search'];
$result = mysql_query("SELECT * FROM oantkb WHERE Name LIKE '%$search%' ORDER BY `INDEX` DESC");

echo '<table class="table">';
echo '<thead>';
echo '<tr>';
echo '<th>#</th>';
echo '<th>Pic</th>';
echo '<th>Name</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';

while($row = mysql_fetch_assoc($result)) {

    $pic = $row['Pic'];
    $name = $row['Name'];

    echo '<tr>';
    echo '<td>#</td>';
    echo '<td><img src="'.$pic.'" height="50" width 50"></td>';
    echo '<td>'.$name.'</td>';
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';
?>

现在它的工作方式应该如此。当我搜索它会说index.php?search = banana,但我需要添加一些分页,所以它会说例如index.php?search = banana&amp;?page = 2。或类似的规定。希望它有意义......我是一个php newb:)

2 个答案:

答案 0 :(得分:1)

在SQL查询结尾处包含以下内容:

$resultsPerPage=10;
$page = ($_GET["page"]-1)*$resultsPerPage;
$query = $query." LIMIT $page,$resultsPerPage";
mysql_query($query);

顺便说一下,不推荐使用mysql_库来支持mysqli。

上述内容也容易受到sql注入攻击,因为$ _GET [“page”]并没有首先被清理过,但为了简单起见,我这样做了。

这假定从1开始的分页方案。

答案 1 :(得分:0)

我一直在使用Pear Pagination很长一段时间。你可以尝试一下。

这是一个很好的教程设置

Simple Pagination in PHP tutorial

添加的好处是在查询中使用它们之前清理变量。