分页所用到的小的语句不明白 求翻译 可能有个别的语句不明白 希望开个帖子 大家给看下 但是可能会分着提出来 有空麻烦大家给说一下首先就是分页偏移量是什么意思//计算查询偏移量$offset = $pagesize*($page-1);我看了半天 不明白他的作用是什么 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $offset = $pagesize*($page-1)//$offset在这里代表的是开始条数(从第$offset条开始查询) $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数 这个页码个数也不明白啊pagelen为什么要%2呢 ?是传值么? 后面再加1 有点晕 我先慢慢消化着·· $pagesize//每页显示条数$page//当前页数如果当前页数是1($page = 1)那么$pagesize * ($page - 1)得多少?结果是0,那么也就是从第一条(mysql的limit是从0开始的,也就是0代表的是第一条)开始查询开始,如果你不$page - 1的话结果就不对了 如果这个是为了求总页数的话,那么思路应该是$pagelen = ceil($totalRow / $pagesize);//$totalRow代表的是数据总条数 function page($page,$total,$phpfile,$pagesize=3,$pagelen=3){$pagecode = '';//定义变量,存放分页生成的HTML$page = intval($page);//避免非数字页码$total = intval($total);//保证总记录数值类型正确if(!$total) return array();//总记录数为零返回空数组$pages = ceil($total/$pagesize);//计算总分页//处理页码合法性if($page<1) $page = 1;if($page>$pages) $page = $pages;//计算查询偏移量$offset = $pagesize*($page-1);//页码范围计算$init = 1;//起始页码数$max = $pages;//结束页码数$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数$pageoffset = ($pagelen-1)/2;//页码个数左右偏移量 从第几条开始查询//生成html$pagecode='<div class="page">';$pagecode.="<span>$page/$pages</span>";//第几页,共几页//如果是第一页,则不显示第一页和上一页的连接if($page!=1){$pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一页$pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一页}//分页数大于页码个数时可以偏移if($pages>$pagelen){//如果当前页小于等于左偏移if($page<=$pageoffset){$init=1;$max = $pagelen;}else{//如果当前页大于左偏移//如果当前页码右偏移超出最大分页数if($page+$pageoffset>=$pages+1){$init = $pages-$pagelen+1;}else{//左右偏移都存在时的计算$init = $page-$pageoffset;$max = $page+$pageoffset;}}}//生成htmlfor($i=$init;$i<=$max;$i++){if($i==$page){$pagecode.='<span>'.$i.'</span>';} else {$pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>";}}if($page!=$pages){$pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页$pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页}$pagecode.='</div>';return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);}这是分也得源码 php100找的 我想把他看明白了 然后自己用 $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数 上面这句话不明白他的意思 还有就是紧接着页码个数下面的几个 为什么都要打点再等号 比如:$pagecode.="<span>$page/$pages</span>";这个点是调用么?不明白啊 $pagelen = ($pagelen%2)?$pagelen:$pagelen+1; //对$pagelen进行模2运算(计算$pagelen除以2的余数,结果要么是整除,余数为0,要么无法整除,余数为1)//不能整除时$pagelen = $pagelen;整除时$pagelen = $pagelen + 1; #1 //计算查询偏移量$offset = $pagesize*($page-1);当前页开始的第一条记录#3$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数翻页导航条显示的页码个数,在这个应用中他将显示奇数个页码 $pagecode.="<span>$page/$pages</span>";等同于(注:php中 "."代表的是连接字符串)$pagecode=$pagecode . "<span>$page/$pages</span>"; 受不了了 像我7楼给的代码 是不是写成一个类就行了 class page{}7楼所出的代码不用改动吧?然后就是在html里面加入代码吧?<?php$phpfile = 'index.php';//页面文件名$page= isset($_GET['page'])?$_GET['page']:1;//默认页码$db = mysql_connect('localhost','test','test');//链接数据库mysql_select_db('test',$db);//选择数据库$counts = mysql_num_rows(mysql_query('select `id` from `test`',$db));//获取需要的数据总条数$sql='select `id`,`title` from `test`';//定义查询语句SQL$getpageinfo = page($page,$counts,$phpfile);//调用函数,生成分页HTML 和 SQL LIMIT 子句$sql.=$getpageinfo['sqllimit'];//组合完整的SQL语句$data = $row = array();//初始化数组$result = mysql_query($sql,$db);//获取结果集//将数据装入$data数组while($row = mysql_fetch_array($result)){$data[]=$row;}?><?phpecho $getpageinfo['pagecode'];//显示分页的html代码?>这段代码 页面文件名只得是什么?是我分页的文件名还是类的文件名?$sql.=$getpageinfo['sqllimit'];这句话组合完整的sqllimit语句是什么意思?根本就不明白 急死我了 如果当前页数是1($page = 1)那么$pagesize * ($page - 1)得多少?结果是0,那么也就是从第一条(mysql的limit是从0开始的,也就是0代表的是第一条)开始查询开始,如果你不$page - 1的话结果就不对了 php 如何做flashpaper自动将.doc格式转换.swf格式浏览,求解 如何处理UTF-8(带%)的中文编码? 香港IT界 如何实现,给点思路 求:超长字符变量解决办法 php 二级联动问题 求PHP源码: 用户点击一个[下载]链接,则计数器+1,用来统计软件下载数量。 谢帮忙哟!很RANG的问题呀! mysql和sqlserver到底谁的速度快? 1136:Column count doesn't match value count at row 1是什么意思呀 一段 sql 查询代码 关于全角数字的正则匹配问题
这个页码个数也不明白啊pagelen为什么要%2呢 ?是传值么? 后面再加1 有点晕 我先慢慢消化着··
$page//当前页数
如果当前页数是1($page = 1)那么$pagesize * ($page - 1)得多少?结果是0,那么也就是从第一条(mysql的limit是从0开始的,也就是0代表的是第一条)开始查询开始,如果你不$page - 1的话结果就不对了
function page($page,$total,$phpfile,$pagesize=3,$pagelen=3){
$pagecode = '';//定义变量,存放分页生成的HTML
$page = intval($page);//避免非数字页码
$total = intval($total);//保证总记录数值类型正确
if(!$total) return array();//总记录数为零返回空数组
$pages = ceil($total/$pagesize);//计算总分页
//处理页码合法性
if($page<1) $page = 1;
if($page>$pages) $page = $pages;
//计算查询偏移量
$offset = $pagesize*($page-1);
//页码范围计算
$init = 1;//起始页码数
$max = $pages;//结束页码数
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
$pageoffset = ($pagelen-1)/2;//页码个数左右偏移量 从第几条开始查询//生成html
$pagecode='<div class="page">';
$pagecode.="<span>$page/$pages</span>";//第几页,共几页
//如果是第一页,则不显示第一页和上一页的连接
if($page!=1){
$pagecode.="<a href=\"{$phpfile}?page=1\"><<</a>";//第一页
$pagecode.="<a href=\"{$phpfile}?page=".($page-1)."\"><</a>";//上一页
}
//分页数大于页码个数时可以偏移
if($pages>$pagelen){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max = $pagelen;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$pagelen+1;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max = $page+$pageoffset;
}
}
}
//生成html
for($i=$init;$i<=$max;$i++){
if($i==$page){
$pagecode.='<span>'.$i.'</span>';
} else {
$pagecode.="<a href=\"{$phpfile}?page={$i}\">$i</a>";
}
}
if($page!=$pages){
$pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页
$pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页
}
$pagecode.='</div>';
return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);
}
这是分也得源码 php100找的 我想把他看明白了 然后自己用
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
上面这句话不明白他的意思 还有就是紧接着页码个数下面的几个 为什么都要打点再等号 比如:
$pagecode.="<span>$page/$pages</span>";
这个点是调用么?不明白啊
//对$pagelen进行模2运算(计算$pagelen除以2的余数,结果要么是整除,余数为0,要么无法整除,余数为1)
//不能整除时$pagelen = $pagelen;整除时$pagelen = $pagelen + 1;
//计算查询偏移量
$offset = $pagesize*($page-1);
当前页开始的第一条记录#3
$pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//页码个数
翻页导航条显示的页码个数,在这个应用中他将显示奇数个页码
等同于(注:php中 "."代表的是连接字符串)
$pagecode=$pagecode . "<span>$page/$pages</span>";
7楼所出的代码不用改动吧?
然后就是在html里面加入代码吧?<?php
$phpfile = 'index.php';//页面文件名
$page= isset($_GET['page'])?$_GET['page']:1;//默认页码
$db = mysql_connect('localhost','test','test');//链接数据库
mysql_select_db('test',$db);//选择数据库
$counts = mysql_num_rows(mysql_query('select `id` from `test`',$db));//获取需要的数据总条数
$sql='select `id`,`title` from `test`';//定义查询语句SQL
$getpageinfo = page($page,$counts,$phpfile);//调用函数,生成分页HTML 和 SQL LIMIT 子句
$sql.=$getpageinfo['sqllimit'];//组合完整的SQL语句
$data = $row = array();//初始化数组
$result = mysql_query($sql,$db);//获取结果集
//将数据装入$data数组
while($row = mysql_fetch_array($result)){
$data[]=$row;
}
?>
<?php
echo $getpageinfo['pagecode'];//显示分页的html代码
?>
这段代码 页面文件名只得是什么?是我分页的文件名还是类的文件名?$sql.=$getpageinfo['sqllimit'];这句话组合完整的sqllimit语句是什么意思?根本就不明白 急死我了