【发布时间】:2020-12-28 19:38:24
【问题描述】:
我的分页有问题,我尽量把我的问题说清楚
首先,我有过滤器和文章列表。我正在从文件 fetch_data.php 获取什么列表
在这个页面上,我正在做一些SQL query corrections,并用while循环来渲染日期。
我想为它做一个分页。
首先我所做的就是像这样在文件集代码的开头。
if (isset($_GET['pageno'])) {
$pageno = $_GET['pageno'];
} else {
$pageno = 1;
}
然后我在SQL查询WHERE语句中的过滤器更正,如果需要我会上传它。
然后我写分页代码
$no_of_records_per_page = 1; // record for show (its works)
$offset = ($pageno-1) * $no_of_records_per_page;
// In this line im cut my querty start SELECT * and replace it with SELECT count (*) with conditions who made by filters.
$str2 = substr($query, 12);
$total_pages_sql = "SELECT count(*)";
$total_pages_sql .= $str2;
$result = mysqli_query($con,$total_pages_sql);
$total_rows = mysqli_fetch_array($result)[0];
$total_pages = ceil($total_rows / $no_of_records_per_page);
当只需添加我的主要query LIMIT。
$query .= "LIMIT $offset, $no_of_records_per_page";
然后在文件的最后,我放了代码
<div class="content">
<ul class="pagination">
<li><a href="?pageno=1">First</a></li>
<li class="<?php if($pageno <= 1){ echo 'disabled'; } ?>">
<a href="<?php if($pageno <= 1){ echo '#'; } else { echo "?pageno=".($pageno - 1); } ?>">Prev</a>
</li>
<li class="<?php if($pageno >= $total_pages){ echo 'disabled'; } ?>">
<a href="<?php if($pageno >= $total_pages){ echo '#'; } else { echo "?pageno=".($pageno + 1); } ?>">Next</a>
</li>
<li><a href="?pageno=<?php echo $total_pages; ?>">Last</a></li>
</ul>
</div>
重要的是要在index.php 中说所有这些节目,但现在问题是这个。我的
按钮可以更改分页 URL,但无法正常工作。如果我选择了只有一条记录的过滤器,那么 NEXT 按钮会使其不可见,因此它可以正常工作,
但是为什么如果我只使用分页下一个按钮我总是得到同一篇文章
知道为什么吗?
在下面的链接中更新了完整的 php 文件
Index.php 代码为here
fetch_data.php 代码是here
【问题讨论】:
-
那么问题是什么?尽管您的过滤器选项应该禁用它,或者更确切地说它正在工作,但您的下一个按钮是否仍在显示?
-
然后我按下下一个按钮我没有得到另一篇文章,它只是同一篇文章
-
明确一点:当你点击
Next时,页码变化正确,但始终是同一篇文章,还是页码没有变化? -
你检查过你的查询字符串吗?可能偏移不正确
-
SELECT count(*)和LIMIT ..."之间没有空格,是不是查询不正确?我看到了串联,但不会自动添加空格。
标签: php html pagination