【发布时间】:2016-03-01 19:07:52
【问题描述】:
我正在尝试在前端对我的数据库博客文章进行分页。
这是代码。
<h2>Blogs</h2>
<?php
$limite = 2;
$pg = (isset($_GET['pg'])) ? (int)$_GET['pg'] : 1;
$inicio = ($pg * $limite) - $limite;
$lastRow = $inicio + $limite;
$total = 0;
include_once('includes/db-connect.php');
$sql = "SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY Pk_blog_id) as row FROM dbo.tb_IEAG_Blogs) a WHERE row between ".$inicio." and ".$lastRow."";
$a2 = sqlsrv_query($conn,$sql);
$sqlcounter = "SELECT Pk_blog_id,Blog_title,Blog_content FROM dbo.tb_IEAG_Blogs WHERE Is_archived = 0 ";
$acounter = sqlsrv_query($conn,$sqlcounter);
while ($result1 = sqlsrv_fetch_array($acounter)) {
$totalintable++;
}
?>
<?php while($result = sqlsrv_fetch_array($a2)){ ?>
<div class="media">
<div class="media-body">
<h3 class="media-heading"><?php echo $result['Blog_title'];?></h3>
<p><i class="fa fa-calendar"></i><?php echo date('F d, Y',strtotime($result['Created_at']));?></p>
<p><?php echo substr($result['Blog_content'], 0, 280) . '...'; ?></p>
</div>
<a class="btn rm-blg" href="blog-details.php?pkid=<?php echo $result['Pk_blog_id'];?>">Read More</a>
</div>
<?php } ?>
<?php $qtdPag = ceil($totalintable/$limite);
if($qtdPag > 1 && $pg <= $qtdPag)
{
?>
<nav class="text-center">
<ul class="pagination">
<li>
<a href="#" aria-label="Previous" class="next">
<span ><img src="images/prev.png" alt=""></span> Previous
</a>
</li>
<?php
for($i = 1; $i <= $qtdPag; $i++)
{
if($i == $pg){
echo "<li><a class='ative'>".$i."</a></li>";
} else {
echo "<li><a href='blog.php?pg=$i'>".$i."</a></li>";
}
}
?>
<li>
<a href="#" aria-label="Next" class="prevs"> Next
<span ><img src="images/next.png" alt=""></span>
</a>
</li>
</ul>
</nav>
<?php } ?>
我得到了分页链接,但它不正确。
我将每页限制为 2 篇博文。
表中的总行数为 6。
第一页运行良好,进入第二页时每页显示三个记录。
我该如何解决这个问题..
谢谢
【问题讨论】:
-
第一页的最后一个结果是否显示为第二页的第一个结果?
标签: php sql-server pagination