
php 翻页问题,请教
<?phpinclude("conn.php");$pagesize=5;$url=$_SERVER["REQUEST_URI"];$url=parse_url($url...
<?php
include("conn.php");
$pagesize=5;
$url=$_SERVER["REQUEST_URI"];
$url=parse_url($url);
$url=$url['path'];
$numb=mysql_query("select * from `test`");
$num=mysql_num_rows($numb);
if($_GET['page']){
$pageval=$_GET['page']; //得到当前页
}
if($num>$pagesize){
if($pageval<=1){
$pageval=1;
echo "共 $num 条". " <a href=$url?page=".($pageval+1).">下一页</a>"; }
else if($pageval >= $num)
{
echo "共 $num 条". " <a href=$url?page=".($pageval-1).">上一页</a>"; }
else
{
echo "共 $num 条". " <a href=$url?page=".($pageval-1).">上一页</a>"."<a href=$url?page=".($pageval+1).">下一页</a>"; }
$page=($pageval-1)*$pagesize;
$page.=',';
}
echo "<br />";
@ $sql="select * from `test` limit $page $pagesize";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
echo "<b>".$row['name']."|".$row['sex'];
echo "<hr>";
}
?>
那个IF语句是什么意思?
else if($pageval >= $num)
{
echo "共 $num 条". " <a href=$url?page=".($pageval-1).">上一页</a>";
} 为什么判断$pageval>=$num 是什么意思? 展开
include("conn.php");
$pagesize=5;
$url=$_SERVER["REQUEST_URI"];
$url=parse_url($url);
$url=$url['path'];
$numb=mysql_query("select * from `test`");
$num=mysql_num_rows($numb);
if($_GET['page']){
$pageval=$_GET['page']; //得到当前页
}
if($num>$pagesize){
if($pageval<=1){
$pageval=1;
echo "共 $num 条". " <a href=$url?page=".($pageval+1).">下一页</a>"; }
else if($pageval >= $num)
{
echo "共 $num 条". " <a href=$url?page=".($pageval-1).">上一页</a>"; }
else
{
echo "共 $num 条". " <a href=$url?page=".($pageval-1).">上一页</a>"."<a href=$url?page=".($pageval+1).">下一页</a>"; }
$page=($pageval-1)*$pagesize;
$page.=',';
}
echo "<br />";
@ $sql="select * from `test` limit $page $pagesize";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){
echo "<b>".$row['name']."|".$row['sex'];
echo "<hr>";
}
?>
那个IF语句是什么意思?
else if($pageval >= $num)
{
echo "共 $num 条". " <a href=$url?page=".($pageval-1).">上一页</a>";
} 为什么判断$pageval>=$num 是什么意思? 展开
5个回答
展开全部
我们的数据库中有100条记录,我们希望分页显示,每页显示10条,那么我们应该怎么来实现呢?
我们来看页数与记录数之间的关系:
第一页:显示1-10条数据,sql语句的limit部分应该是limit 0,10
第二页:显示11-20条数据,sql语句的limit部分应该是limit 10,10
第三页:显示21-30条数据,sql语句的limit部分应该是limit 20,10
以此类推。。。
我们从上面的数据发现limit部分,变化的始终只有第一个起始偏量,而第二个偏量是不变的,这是因为我们每页显示的都是10条。
我们的第一条数据对应的limit起始偏量是0,第二条对应的是1,这是由于mysql语法决定的。
现在,我们使用PHP语言来表述:
$page:当前的页数,默认为第一页
$page_size:每页显示多少条记录,这个是固定不变的
$offset:limit语句的起始偏量,这个变量随着$page的值的改变而改变,我们的limit语句部分是…limit $offset,$page_size,现在$page_size不变
,应此我们只需要找出$offset与$page的对应关系即可,从上面的数据我们可以分析一个数列:
第一项【也就是第一页】的值是0=(1-1)*10【这里,由于limit的第二个偏量不变,所以我们只需要分析第一个偏量】
第二项【也就是第二页】的值是10=(2-1)*10
第二项【也就是第三页】的值是20=(3-1)*10
。。。以此类推,不难得出,这是一个首项为0,公差为10的等差数列,它的通项公式为:pn=(n-1)*10,这里的pn就是我们的$offset,对应过来
,即:$offset=($page-1)*$page_size.
那么分页的limit也就是limit ($page-1)*$page_size,$page_size。
假设我们的数据表是goods,那么分页sql应该是select * from goods limit ($page-1)*$page_size,$page_size。
由于每一页的page值都不一样,所以我们每次读出的数据也是不一样的,这样就实现了,分页的效果。
PS:转载请注明 转自第一php网
我们来看页数与记录数之间的关系:
第一页:显示1-10条数据,sql语句的limit部分应该是limit 0,10
第二页:显示11-20条数据,sql语句的limit部分应该是limit 10,10
第三页:显示21-30条数据,sql语句的limit部分应该是limit 20,10
以此类推。。。
我们从上面的数据发现limit部分,变化的始终只有第一个起始偏量,而第二个偏量是不变的,这是因为我们每页显示的都是10条。
我们的第一条数据对应的limit起始偏量是0,第二条对应的是1,这是由于mysql语法决定的。
现在,我们使用PHP语言来表述:
$page:当前的页数,默认为第一页
$page_size:每页显示多少条记录,这个是固定不变的
$offset:limit语句的起始偏量,这个变量随着$page的值的改变而改变,我们的limit语句部分是…limit $offset,$page_size,现在$page_size不变
,应此我们只需要找出$offset与$page的对应关系即可,从上面的数据我们可以分析一个数列:
第一项【也就是第一页】的值是0=(1-1)*10【这里,由于limit的第二个偏量不变,所以我们只需要分析第一个偏量】
第二项【也就是第二页】的值是10=(2-1)*10
第二项【也就是第三页】的值是20=(3-1)*10
。。。以此类推,不难得出,这是一个首项为0,公差为10的等差数列,它的通项公式为:pn=(n-1)*10,这里的pn就是我们的$offset,对应过来
,即:$offset=($page-1)*$page_size.
那么分页的limit也就是limit ($page-1)*$page_size,$page_size。
假设我们的数据表是goods,那么分页sql应该是select * from goods limit ($page-1)*$page_size,$page_size。
由于每一页的page值都不一样,所以我们每次读出的数据也是不一样的,这样就实现了,分页的效果。
PS:转载请注明 转自第一php网
展开全部
我觉得应该是个bug.这个if应该是判断当前页面是否是最后一页,
if($pageval * $pagesize > $num);
if($pageval * $pagesize > $num);
更多追问追答
追问
我是想知道这个括号里的是什么意思。
为什么是当前页*每页条数>总数 ,这样。 谢谢
追答
这个括号里应该就是判断是否为最后一页,判断条件应该是
($pageval -1) * $pagesize < $num < = $pageval * $pagesize;
之前是我错了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
判断是否在请求的页面之后
追问
什么请求的页面? 否则如果$pageval页面大于等于$num总数,为什么是这样比较呢?
追答
你想象一下页面排一队,编上号。这个就比如说“选取60号以后的页面”一样,只是显示了选取$pageval以后的页面
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果$pageval<$sum,就没有必要显示分页条了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询