单击链接并应在同一页面上显示结果

时间:2016-05-25 18:11:44

标签: php ajax pagination

我正在尝试使用a-z列表过滤细节,我可以成功完成。
但我面临的问题是,当我想要显示结果以及一些分页时,它并没有完全按照我的意愿去做。

这是我的代码:

<?php 
session_start();
//what page are we currently on
if(!isset($_GET['page'])){
    $page=1;
    }
    else {
        $page=(int)$_GET['page'];
    }
//select how many records to show per page
$limit=16;
//count how many rows 
$total=$conn->query("SELECT COUNT(*) FROM `movie`")->fetchColumn();
//how many pages will be there
$pages=ceil($total/$limit);
if($page<1){
    $page=1;//forcing page to be 1 if it is less then 1
    }   
else if($page>$pages){
    $page=$pages;
    }
//calculate the offset 
$offset=($page-1)*$limit;
if(isset($_GET['word'])){
    $qname=$_GET['word'];
}
else {
    $qname='a';
}
$sql=$conn->prepare("SELECT * FROM `movie` WHERE `title` LIKE '$qname%' ORDER BY `movie_id` LIMIT $limit OFFSET $offset");
$sql->execute();
$sql->rowCount();
while($row=$sql->fetch(PDO::FETCH_ASSOC)){
        $title=$row['title'];
        $poster=$row['poster'];

    echo    '<li><a href="#">
        <img src="'.$poster.'" />
        <h2><strong>Watch '.$title.' Online</strong></h2>
        </a>
        </li>';
        }
 ?>

Then somewhere in my html i have this pagination

<?php
$prev=$page-1;
$next=$page+1;
$previous="";
$nextr="";
if($page>1){
$previous='<li><a href="?page='.$prev.'">«</a></span>';
} 
if($page<$pages){
$nextr='<li><a href="?page='.$next.'">»</a></span>';
}
$numbers="";
if($pages>1){
for($i = max(1, $page - 5); $i <= min($page + 5, $pages); $i++){
    if($i==$page){
    $numbers.='<li><a class="active" href="?page='.$i.'">'.$i.'</a></span></li>';
    }
    else {
        $numbers.='<li><a href="?page='.$i.'">'.$i.'</a></span></li>';
    }
    }
}
echo $previous;
echo $numbers;
echo $nextr;
?>

我的HTML: -

<div class="result"><h2>Browse By Words :- <a href="a-z.php?word=a">A</a> | <a href="?word=b">B</a></h2></div>

因此,当我点击link-a时,它会显示结果,网址就像a-z.php?word=a,然后当我尝试将网址分页更改为a-z.php?page=2

那么,如何从数据库中获取结果后对结果进行分页?

我正在寻找一种没有ajax的方法。

0 个答案:

没有答案