<?php
/*
 * Created on 2013-7-30
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */  $page = $_get[page];
if(!function_exists(pageft)){
function pageft($totle,$displaypg=20,$url=''){
//定义几个全局变量:
//$page:当前页码;
//$firstcount:(数据库教程)查询的起始项;
//$pagenav:页面导航条代码,函数内部并没有将它输出;
//$_server:读取本页url"$_server["request_uri"]"所必须。
global $page,$firstcount,$pagenav,$_server;
$globals["displaypg"]=$displaypg;
if(!$page) $page=1;
//如果$url使用默认,即空值,则赋值为本页url:
if(!$url){ $url=$_server["request_uri"];}//url分析:$parse_url=parse_url($url);
$url_query=$parse_url["query"]; //单独取出url的查询字串
if($url_query){
$url_query=preg_replace("/(^|&)page=$page/","",$url_query);
//将处理后的url的查询字串替换原来的url的查询字串:
$url=str_replace($parse_url["query"],$url_query,$url);
//在url后加page查询信息,但待赋值:
if($url_query) $url.="&page"; else $url.="page";
}else {
$url.="?page";
}//页码计算:$lastpg=ceil($totle/$displaypg); //最后页,也是总页数
$page=min($lastpg,$page);
$prepg=$page-1; //上一页
$nextpg=($page==$lastpg ? 0 : $page+1); //下一页
$firstcount=($page-1)*$displaypg;//开始分页导航条代码:$pagenav="显示第 <b>".($totle?($firstcount+1):0)."</b>-<b>".min($firstcount+$displaypg,$totle)."</b> 条记录,共 $totle 条记录";
//如果只有一页则跳出函数:
if($lastpg<=1) return false;
$pagenav.=" <a href='$url=1'>首页</a> ";
if($prepg)
$pagenav.=" <a href='$url=$prepg'>前页</a> ";
else $pagenav.=" 前页 ";
if($nextpg)
$pagenav.=" <a href='$url=$nextpg'>后页</a> ";
else $pagenav.=" 后页 ";
$pagenav.=" <a href='$url=$lastpg'>尾页</a> ";//下拉跳转列表,循环列出所有页码:
$pagenav.=" 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n";
for($i=1;$i<=$lastpg;$i++){
if($i==$page)
$pagenav.="<option value='$i' selected>$i</option>\n";
else
$pagenav.="<option value='$i'>$i</option>\n";
}
$pagenav.="</select> 页,共 $lastpg 页";
}
}
include("conn.php");$result=mysql_query("SELECT * FROM `test`");
$total=mysql_num_rows($result);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。
pageft($total,3);
echo $pagenav;$result="SELECT * FROM `test` limit $firstcount,$displaypg";
echo $result;    $query=mysql_query($result);
    while($row=mysql_fetch_array($query)){       echo "<hr><b>".$row[name]." | ".$row[sex];    }
?>
PHP分页MySQL

解决方案 »

  1.   

    可能是sql出了问题,建议你贴出报错信息以供分析。
    echo mysql_error(); 能看到什么
      

  2.   

    用的着这么复杂用get获取链接后面的参数替换 $firstcount 就行了
      

  3.   

    输出SQL语句。然后复制的PHPMYADMIN里面去,如果有错误,会直接报出来。。
      

  4.   

    echo $result;
    这个是没问题的
    说明sql语句没问题啊
      

  5.   

    select * from `test` limit 0,
     这里有问题,分页长度值没有加载进来
      

  6.   

    $displaypg=20 应该设为全局变量,在你的function 定义之前就声明。
      

  7.   

    $displaypg=20
     应该设为全局变量,在你的function 定义之前就声明。
    对于这个displaypg 变量我定义成了全局变量   把其置于function之前,好像也没用。我觉得这个代码有两个问题,一个是分页长度值没有加载进来,二是sql语句没有执行成功,我是刚接触php不久,求大神们详细指导。
                                                                     ______3q!
      

  8.   

    你函数中有 $globals["displaypg"]=$displaypg;
    本意是将每页行数保存下来供后续使用
    但是你没有注意到,php 的变量名是区分大小写的
    $GLOBALS["displaypg"]=$displaypg;
    才是你需要的还有一处
    $page = $_get[page];
    应为
    $page = $_GET[page];
    否则也不会跳页