我在php中有分页,其中根据用户搜索条件从数据库表中显示数据。我已经完成了以下代码:
<?php
$limit = 8;
if (isset($_GET["page"])) { $page = $_GET["page"]; } else { $page=1; };
$start_from = ($page-1) * $limit;
$link = mysqli_connect("localhost", "root", "", "code");
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
if(isset($_REQUEST["search"])){
$sql = "SELECT * FROM image_gallery WHERE keyq LIKE ? OR keyw LIKE ? OR keye LIKE ? OR keyr LIKE ? OR keyt LIKE ? OR keyy LIKE ? OR keyu LIKE ? OR keyi LIKE ? OR keyo LIKE ? OR keyp LIKE ? LIMIT $start_from, $limit ";
if($stmt = mysqli_prepare($link, $sql)){
mysqli_stmt_bind_param($stmt, "ssssssssss", $param_term, $king, $me, $you, $gig, $mig, $mug, $sug, $kez, $peb);
$param_term = $_REQUEST["search"] . '%';
$king = $_REQUEST["search"] . '%';
$me = $_REQUEST["search"] . '%';
$you = $_REQUEST["search"] . '%';
$gig = $_REQUEST["search"] . '%';
$mig = $_REQUEST["search"] . '%';
$mug = $_REQUEST["search"] . '%';
$sug = $_REQUEST["search"] . '%';
$kez = $_REQUEST["search"] . '%';
$peb = $_REQUEST["search"] . '%';
if(mysqli_stmt_execute($stmt)){
$result = mysqli_stmt_get_result($stmt);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){?>
<div class="aamir"><span><img style="height:40px; width:55px; " class="img-responsive" alt="" src="admin/uploads/<?php echo $row['image'] ?>" /></span><small><?php echo $row['title']; ?></small><strong style="width:40%; height: 35%;"><em class="icon icon-chevron-down"></em><p style="margin-top: -5%;"> <?php echo $row['description']; ?> </p></strong>
<a
class="zayan" target="_blank" href="<?php echo $row['url']; ?>">VISIT</a>
</div>
<?php }?>
<?php
$results = mysqli_query($link,"SELECT COUNT(id) FROM image_gallery");
$row = mysqli_fetch_row($results);
$total_records = $row[0];
$total_pages = ceil($total_records / $limit);
$pagLink = "<div class='pagination'>";
for ($i=1; $i<=$total_pages; $i++) {
$pagLink .= "<a class='circle' href='view.php?page=".$i."'>".$i."</a>";
};
echo $pagLink . "</div>";
?>
<?php
} else{
echo "<p>No matches found <br> <a href='index.php'>Go Back</a></p>";
}
} else{
echo "ERROR " . mysqli_error($link);
}
}
// Close statement
mysqli_stmt_close($stmt);
}
// close connection
mysqli_close($link);
?>
现在,当用户进入搜索时,它会将他带到该页面并显示数据,但是这里的问题是分页不起作用,所有数据都显示在第一页,而第二页显示为空白。谁能告诉我代码中有什么问题。在此先感谢
您可以根据所有记录进行分页,但是只能根据您要查找的记录进行分页
<?php
//...code
if(mysqli_stmt_execute($stmt)){
$result = mysqli_stmt_get_result($stmt);
$rowCount = mysqli_num_rows($result);
if ($rowCount > 0) {
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
//...code
}
}
if ($rowCount > 0) {
$total_pages = ceil($rowCount / $limit);
$pagLink = "<div class='pagination'>";
//...code
}
// close connection
mysqli_close($link);
?>