草写一个,仅供参考//通用分页显示
function show($arr, $url, $pagesize = 30) {//$pagesize为每页显示数,自定义
$num = count($arr);
if ($num > 0) {
$pagecode = floor($_REQUEST['pagecode']);
if (!$pagecode || $pagecode <= 1) $pagecode = 1;
$totalpages = ceil($num / $pagesize);
for ($i = (($pagecode - 1) * $pagesize); $i < ($pagecode * $pagesize); $i++) {
echo $arr[$i];
if ($i == ($num - 1)) { //到最后一条记录跳出循环
break;
}
}
for ($code = 1; $code <= $totalpages; $code++) {
if ($code == $pagecode) {
$page_to .= "<span style=\"color:red\" title=\"当前第".$code."页\">".$code."</span>";
} else {
$page_to .= "<a href=\"".$url."&pagecode=".$code."\" title=\"转到第".$code."页\">".$code."</a>";
}
}
echo "
<div class=\"pagecode\">页码:".$page_to." 每页显示:".$pagesize."条 总计:".$num."条</div>";
} else {
echo "数据库无记录";
}
}

解决方案 »

  1.   

    谢谢!可是我这样调用你的函数:
    <?php
    include("opendata.php");
    $sql="select id,submit from lives_ask where type='1' order by id desc ";
    $result=mysql_query($sql,$conn);
    $arr=mysql_fetch_array($result);
    $url="try.php";
    show($arr,$url,$pagesize=4);
    ?>
    可是只能显示下面的结果:
    “10[生活常识][图文]冬季双唇干燥急1
    页码:1 每页显示:4条 总计:4条”
    我感觉里面有点东西没有输出来??
    你能不能帮再看看那里有错了!
    好象是“$page_to”有点问题!可是我改改了!还是不行哦!
    麻烦你再看看哦!
    谢谢了!
      

  2.   

    不是像那种‘上一页’,‘下一页’的显示!而是要‘ 1,2,3 ’这样显示的哦!!--------------------------------Actually they are the same...
      

  3.   

    But I can't understand this kind
      

  4.   

    你弄一个数组试一下,如:
    show(file("一个文件"), "?");
      

  5.   

    function get_page($query,$total,$page_size,$filename,$model,$style) //获得分页数
    {
    $recordcount=$total;
    $page=$_GET["page"];
    if(($page<0)||(!isset($page))) $page=1;
    $pages=ceil($recordcount/$page_size);
    if ($page>$pages) $page=$pages;
    $first=1;
    $prev= ($page<=1) ? 1 : ($page-1);
    $next= ($page>=$pages) ?  $pages : ($page+1);
    $last=$pages;
    if ($query=="")
     $type="";
    else
    $type = "&".$query;
    $style = ($style=="") ? "" : " class='".$style."'";
    $feystr="记录总数: <font color='#FF6500'>".$recordcount."</font>  页数: <font color='#FF6500'>".$page."/".$pages."</font>&nbsp;&nbsp;&nbsp;&nbsp;";
    switch($model){
    case 1:
    if (($page==1)&&($pages>1)){ 
    $feystr.="第一页&nbsp;";
    $feystr.="<a href='".$filename."?page=".$next."$type'$style>下一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$last."$type'$style>最后一页</a>&nbsp;";
    }
    if(($page>1)&&($page<$pages)){
    $feystr.="<a href='".$filename."?page=".$first."$type'$style>第一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$prev."$type'$style>上一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$next."$type'$style>下一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$last."$type'$style>最后一页</a>&nbsp;";
    }
    if(($page==$pages)&&($pages!=1)){
    $feystr.="<a href='".$filename."?page=".$first."$type'$style>第一页</a>&nbsp;";
    $feystr.="<a href='".$filename."?page=".$prev."$type'$style>上一页</a>&nbsp;";
    $feystr.="最后一页&nbsp;";

    }
    $feystr.="&nbsp;&nbsp;&nbsp;&nbsp;选择页码:&nbsp;<select name='page_now' id='page_now' onChange=\"javascript:window.open(page_now.value,'_self')\">";
    for($i=1;$i<=$pages;$i++){
    if($_GET["page"]==$i){
    $feystr.="<option value='".$filename."?page=".$i."$type' selected>".$i."</option>";
    } else {
    $feystr.="<option value='".$filename."?page=".$i."$type'>".$i."</option>";
    }
    }
    $feystr.="</selected>";
    break;

    case 2:
    for($j=1;$j<=$pages;$j++){
    if ($page==$j){
    $feystr.="$i";
    } else {
    $feystr.=" <a href='".$filename."?page=".$j."$type'$style>[".$j."]</a> ";
    }
    }
    break;

    case 3:
    $feystr .= "<a href='".$filename."?page=".$prev.$type."'$style><img src='images/prev.gif' border='0'></a>";
     for($i=1;$i<=$pages;$i++)
     {
    if ($i==$page)
    {
    $feystr .= "<b>  ".$i."  </b>";
    }
    else
    {
    $feystr .= "<a href='".$filename."?page=".$i.$type."'$style>  ".$i."  </a>";
    }
     }
    $feystr .= "<a href='".$filename."?page=".$next.$type."'$style><img src='images/next.gif' border='0'></a>";
    break;

    case 4:
    $feystr="第".$page."页/共".$pages."页&nbsp;|&nbsp;总".$recordcount."条记录&nbsp;|&nbsp;";
    if(($page==1)&&($pages>1)){
    $feystr.="首页&nbsp;|&nbsp;上页&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$next."$type'$style>下页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$last."$type'$style>尾页</a>&nbsp;|&nbsp;";
    }
    if(($page>1)&&($page<$pages)){
    $feystr.="<a href='".$filename."?page=".$first."$type'$style>首页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$prev."$type'$style>上页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$next."$type'$style>下页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$last."$type'$style>尾页</a>&nbsp;|&nbsp;";
    }
    if(($page==$pages)&&($pages!=1)){
    $feystr.="<a href='".$filename."?page=".$first."$type'$style>首页</a>&nbsp;|&nbsp;";
    $feystr.="<a href='".$filename."?page=".$prev."$type'$style>上页</a>&nbsp;|&nbsp;";
    $feystr.="下页&nbsp;|&nbsp;尾页&nbsp;|&nbsp;";
    }
    $feystr.="<input name='pageTo' type='text' size='5' id='pageTo'>&nbsp;"; 
    $feystr.="<input type='submit' name='Submit' value='GoTo' onClick=\"javascript:location.href='".$filename."?page='+pageTo.value+'$type';\">";
    break;

    case 5:
    $feystr="共找到".$recordcount."条记录 每页显示".$page_size."条记录 共".$pages."页 ";
    if($page>1)
    $feystr.="<a href='".$filename."?page=1".$type."'$style>首页</a> <a href='".$filename."?page=".($page-1).$type."'$style>前页</a> ";
    else
    $feystr.="首页 前页 ";

    $offset = floor($page/10);
    $page_left = $offset==0 ? 1 : $offset*10;
    $page_right= $pages<($page_left+10) ? $pages : $page_left+10;
    if($page_right==11) $page_right = $page_right-1;
    for($i=$page_left;$i<=$page_right;$i++)
    {
    if($i==$page)
    $feystr.="<font color=red>$i</font> ";
    else
    $feystr.="<a href='".$filename."?page=".$i.$type."'$style>$i</a> ";
    }
    if($page<$pages)
    $feystr.="<a href='".$filename."?page=".($page+1).$type."'$style>后页</a> <a href='".$filename."?page=".$pages.$type."'$style>尾页</a>";
    else
    $feystr.="后页 尾页";
    break;
    }
    return $feystr;
    }
      

  6.   

    //4.显示页数
    function show_page_01( $_classify = "" , $_where = "", $_page_id = 1, $_page_row = PAGE_MAX_ROW){
    $max = $this->page_count_01($_classify, $_where, $_page_row);
    if($_page_id < 6){
    $_open = 1; 
    if($max < 10) $_close = $max;
    else  $_close = 10;
    }
    elseif($_page_id > ($max - 5)){
    $_close = $max;
    if( $max > 10 ) $_open = $max - 10;
    else  $_open = 1;
    }else{
    $_open  = $_page_id - 4;
    $_close = $_page_id + 5;
    }
    $s = "";
    if($_page_id - 10 > 10){
    $p1 = $_page_id - 10;
    $s .= "<a href='#' onclick='searchid($p1);'><<</a>" ;
    }
    elseif($_page_id > 1){
    $s .= "<a href='#' onclick='searchid(1);'><<</a>" ;
    }
    if($_page_id > 1){
    $p2 = $_page_id - 1; 
    $s .= " <a href='#' onclick='searchid($p2);'><</a>" ;
    }
    $s .= " <a href='#' onclick='searchid($_open);' >$_open</a>";
    for ($i = $_open + 1; $i <= $_close; $i++){
    $s .= "|<a href='#' onclick='searchid($i);' >" 
    . $i . "</a>";
    //xajax_schoolslist(xxfw_id, document.getElementById('schools').value);
    }
    if( ($_page_id + 1) < $max ){
    $p3 = $_page_id + 1;
    $s .= " <a href='#' onclick='searchid($p3);'>></a>" ;
    }
    if( ($_page_id + 10) < $max ){
    $p4 = $_page_id + 10;
    $s .= " <a href='#' onclick='searchid($p4);'>>></a>" ;
    }else{
    $s .= " <a href='#' onclick='searchid($max);'>>></a>" ;
    }
    $s = "第 $_page_id 页 共 $max 页 本页 $_page_row 条 " . $s;
    return $s;
    }//end.show_page_01;
      

  7.   

    /**
     * 显示分页链接的函数
     * @author kapil
     * @example echo make_page_link(100,3,'x=1&y=2&z=3'); * @param int $num
     *  一共有多少条数据
     * @param int $per_page
     *   每页显示多少数据
     * @param string $condition
     *  URL上的参数链接
     * @param $link_style
     *  链接字符的样式
     * @return 返回HTML代码
     */
    function make_page_link($num,$per_page,$condition = '', $link_style = 0)
    {
    switch ($link_style)
    {
    case 0:
    $left_bracket  = ''; // 左括号
    $right_bracket  = ''; // 右括号
    $pre = '上一页'; // 
    $next = '下一页';
    $first = '首页'; // 首页
    $last = '末页'; // 尾页
    break;
    case 1:
    $left_bracket  = '';
    $right_bracket  = '';
    $pre = '<img src="images/common/pre.jpg" border="0">';
    $next = '<img src="images/common/next.jpg" border="0">';
    $first = '|<';
    $last = '>|';
    break;
    }

    $_GET['page'] != '' ? $page = $_GET['page'] : $page = 1;
    $url = $_SERVER['PHP_SELF'];
    $s = '';
    $n = ceil($num / $per_page);

    if($condition != '')
    {
    $condition .= '&';
    }

    $page == 1 ? $s .= $left_bracket . $first  . $right_bracket . '&nbsp;&nbsp;' : $s .= $left_bracket . ' <a href="' . $url . '?' . $condition . 'page=1">' . $first . '</a> ' . $right_bracket . '&nbsp;&nbsp;';
    if ($page * $per_page > $per_page) 
    {
    $s .= $left_bracket . ' <a href="' . $url . '?' . $condition . 'page=' . ($page - 1) . '">' . $pre  .'</a> ' . $right_bracket;
    }
    else 
    {
    $s .= $left_bracket . $pre . $right_bracket;
    }
    $page >= 5 ? $t = $page - 4 : $t = 1;
    if($page >= 5)
    {
    ($page * $per_page + 4 * $per_page) < $num ? $p = $page + 5 : $p = $n + 1;
    }
    else 
    {
    $p = 10;
    } if ($n >= 10) 
    {
    $x = $p - 9;
    $y = $p;
    }
    else if($n == 1)
    {
    $x = 0;
    $y = 2;
    }
    else 
    {
    $x = 1;
    $y = $n + 1;
    }
    for($i = $x, $page * $per_page <= $num; $i < $y; $i++)
    {
    if($page == $i || ($page == '' && $o == ''))
    {
    $s .= '&nbsp;' . $left_bracket . ' <b>' . $page . '</b> ' . $right_bracket;
    $o = '1';
    }
    else 
    {
    if($num > $per_page)
    {
    $s .= '&nbsp;&nbsp;' . $left_bracket . '<a href="' . $url . '?' . $condition . 'page=' . ($i) . '">' . ($i) . '</a> ' . $right_bracket;
    }
    }
    }
    if($page * $per_page < $num)
    {
    $s .= '&nbsp;&nbsp;' . $left_bracket  .' <a href="' . $url . '?' . $condition . 'page=' . ($page + 1) . '">' . $next . '</a> ' . $right_bracket;
    }
    else 
    {
    $s .= '&nbsp;&nbsp;' . $left_bracket . $next . $right_bracket;
    }

    if($n != 0)
    {
    $page == $n ? $s .= '&nbsp;&nbsp;' . $left_bracket . $last . $right_bracket : $s .= '&nbsp;&nbsp;' . $left_bracket . ' <a href="' . $url . '?' . $condition . 'page=' . $n . '">' . $last . '</a> ' . $right_bracket;
    }
    else 
    {
    $s .= '&nbsp;&nbsp;' . $left_bracket . $last . $right_bracket;
    }
    return $s;
    }LZ试一下我这个吧,不用数据库也能分页
      

  8.   

    //-------------------------------------------------------------------------------
    //分頁程序
    //$pageshows  每頁顯示的條數
    //$total 總紀錄數
    //$url_link 連接網址
    //$page  當前頁數
    //-------------------------------------------------------------------------------
    function fun_page($pageshows,$total,$url_link,$page){
    $pages=intval($total/$pageshows);
    if (($total%$pageshows)!=0) $pages++;
    if ($pages==0) $pages=1;
    if ($page=="") $page=1;
    $offset=$pageshows*($page-1);
    $v=$total-$offset-$pageshows;
    $x = 0;
    if ($v<0) $v=0;
    $tempnum = 1;$temppage1 = "";
    $first=1;
    $prev=$page-1;
    $next=$page+1;
    $last=$pages;
    if ($page>1)
    {
      $temppage1 .= "<a href='".$url_link."&page=".$first."' >首頁</a>&nbsp;";
      $temppage1 .= "<a href='".$url_link."&page=".$prev."' >上一頁</a>&nbsp;";
    }$temppage1 .= "&nbsp;共 <font color='#990000'>".$pages."</font> 頁&nbsp;";
    $l = 1;
    $temppages = $pages;
    $temppage = $page;
    $temppage1 .= "第";if ($temppage != 1) $temppage1 .=  "&nbsp;<a href='".$url_link."&page=1' class=".$class.">1</a>&nbsp;";
    while ($temppages > 0)
    {
      if ($l < 11 and $temppage <= $pages) {
        if ($temppage == $page){$class="pages";}else{$class="page";}
    $temppage1 .= "&nbsp;<a href='".$url_link."&page=".$temppage."' class=".$class.">".$temppage."</a>&nbsp;"; 
        $temppage++;
    $l++;
      }
      $temppages--;
    }
    if ($temppage <= $pages) $temppage1 .= "..&nbsp;<a href='".$url_link."&page=".$pages."' class=".$class.">".$pages."</a>&nbsp;";
    $temppage1 .= "頁&nbsp;&nbsp;";if ($page<$pages)
    {
      $temppage1 .= "<a href='".$url_link."&page=".$next."' >下一頁</a>&nbsp;";
      $temppage1 .= "<a href='".$url_link."&page=".$last."' >尾頁</a>&nbsp;";
    }
    $qq1 = ($page - 1) *  $pageshows + 1;
    $num = 1;
    $endoffset = $offset + $pageshows;
    if ($endoffset > $total) $endoffset = $total;$page_array = array($temppage1,$offset,$endoffset);
    return $page_array;
    }調用方法
    $pageshows = 16;
    $page_function = fun_page($pageshows,$num,$link,$_GET['page']);
    for ($i=$page_function[1]; $i<$page_function[2];$i++) {}
      

  9.   

    還有這個echo $page_function[0];顯示分頁的
      

  10.   

    <?php
    /*
    需求,建立一个test数据库,在里边建一个test表,里面就
    只要id字段,输入一下数据就可以啦。。
    由于水平有限,难免出错。。
    */
    $conn = mysql_connect("localhost","root","123");$maxnum = 5;  //每页显示记录条数mysql_select_db("test", $conn);
    $query1 = "SELECT COUNT(*) AS totalrows FROM userinfo ";
    $result1 = mysql_query($query1, $conn) or die(mysql_error());
    $row1 = mysql_fetch_array($result1);
    $totalRows1 = $row1['totalrows'];  //数据集数据总条数
    $totalpages = ceil($totalRows1/$maxnum);//计算可分页总数,ceil()为上舍函数if(!isset($_GET['page']) || !intval($_GET['page']) || $_GET['page'] > $totalpages) $page = 1;  //对3种出错进行默认处理
    //在url参数page不存在时,page不为10进制数时,page大于可分页数时,默认为1
    else $page = $_GET['page'];$startnum = ($page - 1)*$maxnum; //从数据集第$startnum条开始取,注意数据集是从0开始的$query = "SELECT * FROM userinfo LIMIT $startnum,$maxnum";//选择出符合要求的数据 从$startnum条数据开始,选出$maxnum行
    $result = mysql_query($query, $conn) or die(mysql_error());
    $row = mysql_fetch_array($result);?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>分页示例</title>
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_jumpMenu(targ,selObj,restore){ //v3.0
      eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
      if (restore) selObj.selectedIndex=0;
    }
    //-->
    </script>
    <style type="text/css">
    a{text-decoration:none;}
    a:hover{text-decoration:underline}
    table{font-size:12px;}
    .tb{background-color:#73BB95}
    .tr{background-color:#FFFFFF}
    </style>
    </head><body>
    <table width="30%"  border="0" align="center" cellpadding="0" cellspacing="1" class="tb">
      <tr>
        <td height="24" align="center">分页示例</td>
      </tr>
      <?php if($totalRows1) {//记录集不为空显示
      do { 
      ?>
      <tr class="tr">
        <td height="24"><div align="center"><?php echo $row['id'];?></div></td>
        <td height="24"><div align="center"><?php echo $row['username'];?></div></td>
      </tr>
      <?php }while($row = mysql_fetch_array($result));?>
    </table><table width="95%"  border="0" align="center" cellpadding="0" cellspacing="0">
      <tr><form name="form1">
        <td height="27"><div align="center">
            <?php 
             echo "共计<font color=\"#ff0000\">$totalRows1</font>条记录";
             echo "<font color=\"#ff0000\">".$page."</font>"."/".$totalpages."页 "; 
        
            //实现 << < 1 2 3 4 5> >> 分页链接
            $pre = $page - 1;//上一页
            $next = $page + 1;//下一页
            $maxpages = 4;//处理分页时 << < 1 2 3 4 > >>显示4页
            $pagepre = 1;//如果当前页面是4,还要显示前$pagepre页,如<< < 3 /4/ 5 6 > >> 把第3页显示出来
            
            if($page != 1) { echo "<a href='".$_SERVER['PHP_SELF']."'><<</a> ";
            echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$pre."'><</a> ";}
            
            if($maxpages>=$totalpages) //如果总记录不足以显示4页
            {$pgstart = 1;$pgend = $totalpages;}//就不所以的页面打印处理
            elseif(($page-$pagepre-1+$maxpages)>$totalpages)//就好像总页数是6,当前是5,则要把之前的3 4 显示出来,而不仅仅是4
            {$pgstart = $totalpages - $maxpages + 1;$pgend = $totalpages;}
            else{
            $pgstart=(($page<=$pagepre)?1:($page-$pagepre));//当前页面是1时,只会是1 2 3 4 > >>而不会是 0 1 2 3 > >>
            $pgend=(($pgstart==1)?$maxpages:($pgstart+$maxpages-1));
            }
            
            for($pg=$pgstart;$pg<=$pgend;$pg++){ //跳转菜单
            if($pg == $page) echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$pg\"><font color=\"#ff0000\">$pg</font></a> ";
            else echo "<a href=\"".$_SERVER['PHP_SELF']."?page=$pg\">$pg</a> ";
            }
            if($page != $totalpages)
            {echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$next."'>></a> ";
            echo "<a href='".$_SERVER['PHP_SELF'].'?page='.$totalpages."'>>></a> ";}
            ?>
              <select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
              <option value="">选择</option>
              <?php for($pg1=1;$pg1<=$totalpages;$pg1++) {
               echo "<option value=\"".$_SERVER['PHP_SELF']."?page=$pg1\">".$pg1."</option>";
              }?>
          </select>
        </td></form>
      </tr>
    </table>
    <?php } else {//记录集为空时显示?>
    <tr class="tr">
        <td height="24"><div align="center">没有任何记录</div></td>
      </tr>
      </table>
    <?php }?>
    </body>
    </html>
    <?php 
    mysql_free_result($result1);
    mysql_free_result($result);
    ?>