那个shoupage明明是设置的5啊 为什么还是显示所有的页 而且我把shoupage的值随便改还是显示所有的 没变化
<?php
function fenye(){
global $page,$pagenum,$shoupage,$pageoffset;
echo "<div >";
echo "<ul id='ul2'>";
echo '<li>'.$page.'/'.$pagenum.'页|</li>';
if($page==1){
echo '<li>首页|</li>';
echo '<li>上一页|</li>';
}else{
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'">首页</a>|</li>';
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?'.($page-1).'">上一页</a>|</li>';
}
if($pagenum>$shoupage){
if($page>$pageoffset){
$start=$page-$pageoffset;
$end=$pagenum>$page+$pageoffset?$page+$pageoffset:$pagenum;
}else{
$start=1;
$end=$pagenum>$shoupage?$shoupage:$pagenum;
}
if($page+$pageoffset>$pagenum){
$start=$start-($page+$pageoffset-$end);
}
}
echo '<div>';
echo '<ul id="ul1">';
$shoupage=5;
$pageoffset=($shoupage-1)/2;
$start=1;
$end=$pagenum;
for($i=$start;$i<=$end;$i++){
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$i.'">'.($i).'</a></li>';
}
echo '</ul>';
echo '</div>';
if($page==$pagenum){
echo '<li>|下一页|</li>';
echo '<li>尾页|</li>';
}else{
echo '<li>|<a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page+1).'">下一页</a>|</li>';
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$pagenum.'">尾页</a>|</li>';
}
echo '</ul>';
echo '</div>';
};
?>那个shoupage明明是设置的5啊 为什么还是显示所有的页 而且我把shoupage的值随便改还是显示所有的 没变化
<?php
function fenye(){
global $page,$pagenum,$shoupage,$pageoffset;
echo "<div >";
echo "<ul id='ul2'>";
echo '<li>'.$page.'/'.$pagenum.'页|</li>';
if($page==1){
echo '<li>首页|</li>';
echo '<li>上一页|</li>';
}else{
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'">首页</a>|</li>';
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?'.($page-1).'">上一页</a>|</li>';
}
if($pagenum>$shoupage){
if($page>$pageoffset){
$start=$page-$pageoffset;
$end=$pagenum>$page+$pageoffset?$page+$pageoffset:$pagenum;
}else{
$start=1;
$end=$pagenum>$shoupage?$shoupage:$pagenum;
}
if($page+$pageoffset>$pagenum){
$start=$start-($page+$pageoffset-$end);
}
}
echo '<div>';
echo '<ul id="ul1">';
$shoupage=5;
$pageoffset=($shoupage-1)/2;
$start=1;
$end=$pagenum;
for($i=$start;$i<=$end;$i++){
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$i.'">'.($i).'</a></li>';
}
echo '</ul>';
echo '</div>';
if($page==$pagenum){
echo '<li>|下一页|</li>';
echo '<li>尾页|</li>';
}else{
echo '<li>|<a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page+1).'">下一页</a>|</li>';
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$pagenum.'">尾页</a>|</li>';
}
echo '</ul>';
echo '</div>';
};
?>
@Eapen 他已经说出了原因。
这边给出一个我写的demo,复制粘贴即可运行。
若是消化了,你也就学会了分页,若还有不知道的可随时问我:
$np=@$_GET['page']; // 获取当前页 /* * 设置要显示的页数。 * 例如显示 5 页 * 为了合理的显示,需要设置一个偏移量:你肯定想得到偏移量会是:(5-1)/2=2;----》 5 6 nowpage 8 9 * 那如果显示的是6页该怎么办? * 该不会也是 (6-1)/2 吧! 所以你其实需要自己手动算一下的,只要凑成6页即可:3+1+2=6 所以设: $offset_forward=3 $offset_forward=2 1 表示当前页 --->5 6 7 nowpage 9 10 */ $dp=12; //显示多少页 $offset_forward=6; // 前面显示多少条记录 $offset_after=5; // 后面显示多少天记录
/---分页函数---/
function display_data($np,$dp,$offset_forward,$offset_after){
$length=1000; // 设置记录数
if ($length==0)
{
echo '没有数据!';
}
$total_page=ceil($length/$dp); // 计算总页数。
/*---对页数进行限制:必须大于0 小于总页数---*/
if (!isset($np))
{
$np=1;
}else{
if ($np<1)
{
$np=1;
}
if ($np>$total_page)
{
$np=$total_page;
}
}
$btn="<style type='text/css'>.page{margin-left:15px;}</style>";
$btn.="<a href='".$_SERVER['PHP_SELF']."?page=1'>首页</a>";
$btn.="<a href='".$_SERVER['PHP_SELF']."?page=".($np-1)."'>上一页</a>";
if ($total_page<=$dp) // 若是总页数小于要显示的分页数 ...
{
$start_page=1;
$end_page=$total_page;
for ($i=$start_page;$i<=$end_page;++$i)
{
$btn.="<a class='page' href='".$_SERVER['PHP_SELF']."?page=$i'>$i</a>";
}
}else{ // 若是总页数大于要显示的分页数 ...
if ($np<=$dp) // 若是当前页小于等于要显示的页数..
{
$start_page=1;
$end_page=$dp;
for ($i=$start_page;$i<=$end_page;++$i)
{
$btn.="<a class='page' href='".$_SERVER['PHP_SELF']."?page=$i'>$i</a>";
}
}else{ // 若是当前页大于要显示的页数..
if ($np+$offset_forward>$total_page) //若是当前页加上偏移量会大于总页数 ....
{
$start_page=$total_page-$offset_forward-$offset_after;
$end_page=$total_page;
for ($i=$start_page;$i<=$end_page;++$i)
{
$btn.="<a class='page' href='".$_SERVER['PHP_SELF']."?page=$i'>$i</a>";
}
}else{ //若是当前页加上偏移量会小于总页数 ....
$start_page=$np-$offset_after;
$end_page=$np+$offset_forward;
for ($i=$start_page;$i<=$end_page;++$i)
{
$btn.="<a class='page' href='".$_SERVER['PHP_SELF']."?page=$i'>$i</a>";
}
}
}
}
$btn.="<a href='".$_SERVER['PHP_SELF']."?page=".($np+1)."'>下一页</a>";
$btn.="<a href='".$_SERVER['PHP_SELF']."?page=$total_page'>尾页</a>";
echo $btn;
/*---给当前页添加样式--*/
echo <<<EOT
<script>
function \$cn(cn){
return document.getElementsByClassName(cn);
}
var page=\$cn('page');
for (var i=0;i<page.length;++i)
{
if (page[i].textContent==$np)
{
page[i].style.color='red';
}else{
page[i].style.color='inherit';
}
}
</script>EOT;
系统是针对于企业用户量身打造的一款简单的程序,只要你懂一点html语言你就可以轻轻松松的创建一个自己的企业官网,品牌官网、为了更好的让各位开发者可以简单的制作自己满意的模板,我们官网论坛提供了模板变量(模板标签)可以让大家轻松制作自己的企业官网。 更新说明:修复专题页面添加产品不显示问题 功能列表:1.设置中心2.分类栏目3.关于我们4.联系我们5.招聘中心6.留言方式7.支持伪静态8.支持生成静
0
} display_data($np,$dp,$offset_forward,$offset_after); // 执行分页逻辑
?>
啊 分页写的好复杂。。。
如果只是想问为什么全都显示出来的话
问题出在30 31行
$start=1; $end=$pagenum;
去掉这两行就可以了。。虽然还是有其他问题
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号