我正在尝试使用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的方法。