Home >Backend Development >PHP Tutorial >翻页有关问题
翻页问题
用smarty做网站,最近遇到这样一个问题,就是一张张的图片翻页(上一页,下一页)问题。图片的名字存数据库中,图片id为主键,设为自动递增的。当点击页面“下一页”的时候链接到下一页,动态传递变量(图片id)调用下一张图片。但是,后台管理的时候有可能会删除一些图片,使得数据库中图片id不连续,那循环读出的时候,怎样将图片按id递增的顺序读出来呢?
php中代码:
$row=$GLOBALS['db']->getone("SELECT * FROM ".$db_prefix."project where project_id='$id'");
if($row){
$project['id']=intval($row['project_id']);//图片id
$project['up_id']=intval($row['project_id']+1);
$project['down_id']=intval($row['project_id']-1);
$project['pro_name']=$row['proj_name'];
$project['pro_pic']=$row['proj_pic'];//图片名称
$project['pro_declare']=$row['proj_declare'];
$project['pro_class']=$row['proj_class'];//图片所属类型,总共有两类图片
}
$smarty=new smarty();smarty_header();
$smarty->assign('project',$project);
$smarty->display('projectdetail.html');
projectdetail.html中代码:
第一页
上一页
最后一页
下一页
由于主键id设为自动递增的,如果这时数据库中有图片被删除,id就不连续了,$project['up_id']跟$project['down_id']就可能链接不到正确的图片
------解决方案--------------------
对于不连续的id,你不能简单的
$project['up_id']=intval($row['project_id']+1);
$project['down_id']=intval($row['project_id']-1);
而是要查询出 project_id 上下各一条(共3条)记录来处理
------解决方案--------------------