我正在做一个项目上面有一个简单的分页代码,我发上去你参考参考
创新互联公司专注于铁岭县网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供铁岭县营销型网站建设,铁岭县网站制作、铁岭县网页设计、铁岭县网站官网定制、微信小程序开发服务,打造铁岭县网络公司原创品牌,更为您提供铁岭县网站排名全网营销落地服务。
if(empty($_GET['page']))
{
$p_sql="select * from article order by artID desc limit 0,15";//当页面第一次打开时就查前15条记录
}
else
{
if($_GET['page']!=1)
{
$s=($_GET['page']-1)*15;
//$s是查询记录的开始数
当前页1是就查15条记录后的15条记录
例如$_GET['page']等于2那么(2-1)*15就是15
(3-1)*15就是30这是第三页显示的
}
else
{
$s=0;//当$_GET['page']等于1时就从第0条开始
}
$p_sql="select * from article order by artID desc limit $s,15";
}
$p_res=mysql_query($p_sql,$conn);
$sql="select * from news";
$res=mysql_query($sql,$conn);
$num=mysql_num_rows($res);
$page=floor($num/15)+1;//分页的总页数
没发现错误。
你看下是不是你数据的事儿。或者打印出这$offset $page_size的值,在phpmyadmin里面执行下sql,对比下结果。
你这个分页算法思路超级乱。。我看了半天都不知道哪个是页码变量。。不过有一点是肯定的。。你的每个值都加了1。见以下代码:
$last_pagecount=($pages-1)*$pagesize+1;
$pagecount=($topage-1)*$pagesize+1;
$pagecount=1;
跟据你的写法。当第一页的时候。MYSQL 语句最后就是这样的结果:
order by id desc LIMIT 1, 10;
而查询偏移量是从0开始的。你这个句语最终被解释为:
倒序返回,从结果的第二条开始。往后十条。
也就是说,如果你有10条数据。ID是 1-10,倒序以后是 10-1 ,而MYSQL 从第二条起,也就是9-1之后没有了。当然就少了一条。。。
修改:把你所有的+1去掉。如果没有值传来。初始化为 0。
补充:关于数据偏移量,和数组一样。默认索引是从 0 开始的。而不是从 1 开始。即:索引0的那条数据,ID是1;索引1的那条数据ID是2。以此类推。。请不要认为那个就是ID值。。
同学,你试试这样
$sskkMap = array('商品代码'='A','商品'='B','价格'='C');
$kkssMap = array('aasd'='A','sxfd'='B','dxdx'='C');
$objPHPExcel = new PHPExcel();
$objPHPExcel-getProperties()-setCreator("Maarten Balliauw");
$sql = "select * from CARCAR where '1' LIMIT 0 ,500"; //完成
$lists = $db-select($sql);
$i = 0 ;
foreach($lists as $record){
if($i == 0){ //$i==0,数据首条就出现了。但是表格首行没了
foreach($sskkMap as $k =$col){ //表格首行
$objPHPExcel-setActiveSheetIndex()-setCellValue($col.$i, $k);
}
}
else{
foreach($kkssMap as $k =$col){ //表格第二行起。这里总是缺一条数据没提取出来。。
$objPHPExcel-setActiveSheetIndex()-setCellValue($col.$i, $record[$k]);
}
}
$i++;
}
if(!empty($lists)){
$objPHPExcel-getActiveSheet()-setTitle('Simple');
$objPHPExcel-setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter-save('php://output');
}