2012-09-17 134 views
0

所以我试图做一个页面,我可以显示从我的数据库表中的结果。你应该能够搜索,并且应该有一些分页,因为有成千上万的结果。PHP结合搜索功能和分页

我设法做了一个网页,只是有搜索,并完美的作品。所以现在我需要知道如何将一些分页整合到那。

的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?搜索=香蕉,但我需要一些分页添加,所以它会说,例如index.php?search = banana &?page = 2。或类似的规定。希望它是有道理的...我是一个PHP新手:)

+0

你'$ search'声明更改为分页方案:'$搜索= mysql_real_escape_string($ _ GET [ '搜索']);' - 帮助防止SQL注入通过您的消毒输入。或者使用mysqli/pdo和变量绑定。 – anjunatl

回答

0

我一直在使用梨分页很长一段时间。你可以尝试一下。

这里是一个很好的教程设置它

Simple Pagination in PHP tutorial

一件好事补充的是清洁您的查询使用它们之前您的变量。

1

在包含SQL查询的末尾以下内容:

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

由mysql_库支持的mysqli的过时的方式。

此外,上述容易受到SQL注入攻击,因为$ _GET [“page”]不是首先被清理,但为了简单起见,我是这样做的。

这假定从1开始