我自己有分页显示的代码,是“第一页”,“上一页”,“下一页”,“最后一页”这样的,我感觉这样的分页不是很好,所以就想知道三星中国网站的分页是如何做的,而且我的第一个作品很快就要发布了,着急呀,我不想用类来解决问题,大家帮忙呀,能不能将代码贴出来,分不够还可以再加。xumail(笑傲江湖) ,帮帮我,我没有太多时间了,以后再好好研究,当务之急是尽快得到代码,站点计划6月9日开通,已经推迟了好几天了,因为自己写的分页代码影响版面,不得不换呀

解决方案 »

  1.   

    select * from tablename limit $startpos,$recordnum$startpos用第几页(就是三星中国分页链接每页的页号,从index.asp?viewPage=3中的viewPage取得)乘以每页显示的记录数即可,后面$recordnum即每页显示数量
      

  2.   

    <?php
        //通用变量,请进行设置
    $host = "localhost";             //主机名,一般为localhost
    $user = "root";                      //Mysql用户名:一般为root或空格
    $password = "";                  //Mysql密码:一般为root或空格
    $databasename = "dbname";       //数据库名
    $tablename= "tablename";           //留言本数据对应的表的名称
    $pagesize = 300; //每页数量
    //-------------------------------------------------------------------
    //连接数据库
    mysql_connect("$host","$user","$password") or die("<font color=red>不能连接到数据库服务器!</font>");
    mysql_select_db("$databasename");
    if($page=="")
    {
    $page=0;
    }
    ?><title>IP统计</title>
    <center><font size=2 color=#aaaaaa>网站访问<a target='_self' href='ipshow.php'><font color=#aaaaaa>统计</font></a>:记录总数为
    <?php
    //
    //计算有多少个记录要显示
    $query00 = "select * from $tablename";
    $result00 = mysql_query($query00);
    $total= mysql_numrows($result00);
    $totalpage=(int)($total/$pagesize)+1;
    if(!($total%$pagesize))$totalpage--;
    echo $total.",共".$totalpage."页";
    ?></font></center><center><table width=700 border=0>
    <tr><td width=70><font size=2 color=#aaaaaa>编号</font></td>
    <td width=120><font size=2 color=#aaaaaa>IP地址</font></td>
    <td width=200><font size=2 color=#aaaaaa>地域</font></td>
    <td width=80><font size=2 color=#aaaaaa>网页名</font></td>
    <td width=50><font size=2 color=#aaaaaa>次数</font></td>
    <td width=180><font size=2 color=#aaaaaa>最后访问</font></td></tr>
    <?php
    //-------------------------------------------------------------------
    $offset=$page*$pagesize;
    $query44 = "select * from $tablename order by id desc limit $offset,$pagesize";
    $result44 = mysql_query($query44);
    while($row = mysql_fetch_row($result44)){
    echo "<tr><td><font size=2 color=#000000>".$row[0]."</font></td>";
    echo "<td><font size=2 color=#000000>".$row[2]."</font></td>";
    echo "<td><font size=2 color=#000000>".$row[3]."</font></td>";
    echo "<td><font size=2 color=#000000>".$row[1]."</font></td>";
    echo "<td><font size=2 color=#000000>".$row[4]."</font></td>";
    echo "<td><font size=2 color=#000000>".$row[5]."</font></td></tr>";
    }
    ?>
    <tr><td><font size=2 color=#000000>&nbsp;</font></td>
    <td><font size=2 color=#000000>&nbsp;</font></td>
    <td><font size=2 color=#000000>&nbsp;</font></td>
    <td><font size=2 color=#000000>&nbsp;</font></td>
    <td><font size=2 color=#000000>&nbsp;</font></td>
    <td align=center><font size=2 color=#000000>
    <?php
    if(($page==0))
    {
    echo "<font size=2 color=#000000>首页</font>&nbsp;<font size=2 color=#000000>上页</font>&nbsp;";
    }
    else
    {
    echo "<a target='_self' href=?page=0><font color=blue>首页</font></a>&nbsp;
          <a target='_self' href=?page=".($page-1)."><font color=blue>上页</font></a>&nbsp;";
    }
    if((($page+1)*$pagesize>$total))
    {
    echo "<font size=2 color=#000000>下页</font>&nbsp;<font size=2 color=#000000>末页</font>";
    }
    else
    {
    echo "<a target='_self' href=?page=".($page+1)."><font color=blue>下页</font></a>&nbsp;
    <a target='_self' href=?page=".($totalpage-1)."><font color=blue>末页</font></a>";
    }
    ?></font></td></tr>
    </table><center>
    <?php
    //-------------------------------------------------------------------
    //断开数据库
    mysql_close();
    ?>
    我想你能够用上一页,下一页来分页,其他的也应该不是问题
      

  3.   

    老早以前写的代码,勿笑,呵呵具体改动如下:先把显示上页下页的去掉,然后取得页数,再用循环输出:for(i=0;i<$pagecount;i++)
    {
    echo "<a target='_self' href=?page=".($i)."><font color=blue>第".($i)."页</font></a>";
    }
      

  4.   

    终于写成功了,但是BUG太多,只能显示小于20的页码,如果页码大于20,就只能改写代码了,不知道哪位高手能帮小弟改改,不胜感激!
    <?php
    $currentPage = $_SERVER["PHP_SELF"];$maxRows = 10;
    $page = 1;
    if (isset($_GET['page'])) {
      $page = $_GET['page'];
    }
    $startRow = ($page-1) * $maxRows;$query = "SELECT * FROM news ORDER BY id DESC";
    $query_limit = sprintf("%s LIMIT %d, %d", $query, $startRow, $maxRows);
    $news = mysql_query($query_limit, $conn) or error("对不起!没有相关记录。");
    $row = mysql_fetch_assoc($news);$all = mysql_query($query);
    $rows = mysql_num_rows($all);$totalPages = ceil($rows/$maxRows)-1;
    $queryString = "";
    if (!empty($_SERVER['QUERY_STRING'])) {
      $params = explode("&", $_SERVER['QUERY_STRING']);
      $newParams = array();
      foreach ($params as $param) {
        if (stristr($param, "page") == false && stristr($param, "rows") == false) {
          array_push($newParams, $param);
        }
      }
      if (count($newParams) != 0) {
        $queryString = "&" . htmlentities(implode("&", $newParams));
      }
    }
    $queryString = sprintf("&rows=%d%s", $rows, $queryString);
    echo "
    <table cellspacing=0 cellpadding=0 border=0 width=100% align=center>";do{
    echo "
    <tr>
    <td height=15>".$row['title']."</td>
    </tr>";
    }while($row = mysql_fetch_assoc($news));echo "
    </table>
    <table cellspacing=0 cellpadding=0 border=0 align=center>
    <tr height=30>";if(($totalPages)<="10"){  echo "<td width=20><img src=".$host."pic/prev.gif align=absmiddle></td>";  for($i="1";$i<=($totalPages+1);$i++){    if($_SERVER['QUERY_STRING']!=""){
          $str = "?page=".$i.$queryString;
        }
        else{
          $str = "?page";
        }
        if($i!=$_GET['page']){
          echo "<td width=20 align=center><a class=page_link href=http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$str.">".$i."</a></td><td width=20 align=center><img src=".$host."pic/cell.gif align=absmiddle></td>";
        }
        else{
          echo "<td width=20 align=center class=page_text><font color=#FF8000>".($i)."</font></td><td width=20 align=center><img src=".$host."pic/cell.gif align=absmiddle></td>";
        }
      }
      echo "<td width=20><img src=".$host."pic/next.gif align=absmiddle></td>";
    }
    else{
      $page = $_GET['page'];
      if($page<="10"){
        echo "<td width=20><img src=".$host."pic/prev.gif align=absmiddle></td>";
        for($i="1";$i<="10";$i++){      if($_SERVER['QUERY_STRING']!=""){
            $str = "?page=".$i.$queryString;
          }
          else{
            $str = "?page";
          }
          if($i!=$_GET['page']){
            echo "<td width=20 align=center><a class=page_link href=http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$str.">".($i)."</a></td><td width=20 align=center><img src=".$host."pic/cell.gif align=absmiddle></td>";
          }
          else{
            echo "<td width=20 align=center class=page_text><font color=#FF8000>".($i)."</font></td><td width=20 align=center><img src=".$host."pic/cell.gif align=absmiddle></td>";
          }
        }
        echo "<td width=20 align=right><a href=http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?page=11".$queryString."><img src=".$host."pic/next.gif align=absmiddle border=0></a></td>";
      }
      if($page>"10" && $page<="20" && $totalPages<="20"){
        echo "<td width=20><a href=http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."?page=10".$queryString."><img src=".$host."pic/prev.gif align=absmiddle border=0></a></td>";
        for($i="11";$i<=($totalPages+1);$i++){      if($_SERVER['QUERY_STRING']!=""){
            $str = "?page=".$i.$queryString;
          }
          else{
            $str = "?page";
          }
          if($i!=$_GET['page']){
            echo "<td width=20 align=center><a class=page_link href=http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].$str.">".($i)."</a></td><td width=20 align=center><img src=".$host."pic/cell.gif align=absmiddle></td>";
          }
          else{
            echo "<td width=20 align=center class=page_text><font color=#FF8000>".($i)."</font></td><td width=20 align=center><img src=".$host."pic/cell.gif align=absmiddle></td>";
          }
        }
        echo "<td width=20 align=right><img src=".$host."pic/next.gif align=absmiddle border=0></td>";
      }}
    echo "
    </tr>
    </table>";?>
      

  5.   

    错误更正:      if($_SERVER['QUERY_STRING']!=""){
            $str = "?page=".$i.$queryString;
          }
          else{
            $str = "?page";
          }
    应为:
          if($_SERVER['QUERY_STRING']!=""){
            $str = "?page=".$i.$queryString;
          }
          else{
            $str = "?page=".$i;
          }
      

  6.   

    $conn = mysql_connect();
    mysql_select_db("db_name");
    $sql = "select count(*) from tbl_name");
    $rs = mysql_qrery($sql);
    list($reccount) = mysql_fetch_row($rs); // 取得记录总数
    $pagesize = 20; // 每页记录数
    $pages = ceil($reccount/$pagesize); // 计算总页数/*** 以上是分页显示的准备工作。无论采用何种导航方式,准备工作都是要做的 ***/// 格式化当前显示页号
    $page = $_GET['page'];
    if($page < 1) $page = 1;// 生成导航条
    $stat = round($page/10)*10; // 导航条起始号
    if($stat == 0) $stat = 1;
    echo $end = ceil($page/10)*10; // 导航条终止号
    for($i=$stat;$i<=min($end,$pages);$i++) {
      if($i == $page)
        echo " $i ";
      else
        echo "[<a herf='view.php?page=$i'>$i</a>]";
    }
    if($i < $pages)
      echo "<a herf='view.php?page=$i'>&gt;$gt;</a>";
      

  7.   

    好象还是xuzuning(唠叨) 老大的厉害一些:)
    学习一下.....
      

  8.   

    /**+-----------------------------------------------
     | 取得下一页.$char为链接的字符,默认为"[>]"
     | i.e. $pb        = new PageBar(50, 10);
     |   $next_page = $pb->next_page("下一页");
     |  +-----------------------------------------------
     */
     function next_page($char='') {
      $linkhead   = $this->linkhead;
      $total_page = $this->total_page;
      $pagecount  = $this->pagecount;
      if (empty($char)) {
       $char = "[>]";
      }
      if ($pagecount<$total_page) {
       $next_page = $pagecount + 1;
       return "<a href=\"$linkhead"."pagecount=$next_page\" title=\"next page\">$char</a>";
      } else {
       return '';
      }
     }
     #End of function next_page(); /**+-----------------------------------------------
     | 取得页码数字条.  $num 为个数,默认为10
     |                    $color 为当前链接的突显颜色
     |      $left 数字左边 默认为"[" 
     |                    $right 数字左右 默认为"]"
     | i.e. $pb      = new PageBar(50, 10);
     |   $num_bar = $pb->num_bar(9, "$cccccc");
     |  +-----------------------------------------------
     */
     function num_bar($num='', $color='', $maincolor='', $left='', $right='') {
      $num       = (empty($num))?10:$num;
      $this->num = $num;
      $mid       = floor($num/2);
      $last      = $num - 1; 
      $pagecount = $this->pagecount;
      $totalpage = $this->total_page;
      $linkhead  = $this->linkhead;
      $left      = (empty($left))?"[":$left;
      $right     = (empty($right))?"]":$right;
      $color     = (empty($color))?"#ff0000":$color;
      $minpage   = (($pagecount-$mid)<1)?1:($pagecount-$mid);
      $maxpage   = $minpage + $last;
      if ($maxpage>$totalpage) {
       $maxpage = $totalpage;
       $minpage = $maxpage - $last;
       $minpage = ($minpage<1)?1:$minpage;
      }  for ($i=$minpage; $i<=$maxpage; $i++) {
       $chars = $left.$i.$right;
       $char = "<font color='$maincolor'>".$chars."</font>";
       if ($i==$pagecount) {
        $char = "<font color='$color'>$chars</font>";
       }   $linkchar = "<a href='$linkhead"."pagecount=$i'>".$char."</a>";
       $linkbar .= $linkchar;
      }  return $linkbar;
     }
     #End of function num_bar();
     /**+-----------------------------------------------
     | 取得上一组数字条.$char为链接的字符,默认为"[<<]"
     | i.e. $pb        = new PageBar(50, 10);
     |        $num_bar   = $pb->num_bar();
     |   $pre_group = $pb->pre_group();
     |  +-----------------------------------------------
     */
     function pre_group($char='') {
      $pagecount   = $this->pagecount;
      $linkhead    = $this->linkhead;
      $num      = $this->num;
      $mid         = floor($num/2);
      $minpage     = (($pagecount-$mid)<1)?1:($pagecount-$mid);
      $char        = (empty($char))?"[<<]":$char;
      $pgpagecount = ($minpage>$num)?$minpage-$mid:1;
      return "<a href='$linkhead"."pagecount=$pgpagecount' title=\"previous group number bar\">".$char."</a>";
     }
     #End of function pre_group();
     
     /**+-----------------------------------------------
     | 取得下一组数字条.$char为链接的字符,默认为"[>>]"
     | i.e. $pb         = new PageBar(50, 10);
     |        $num_bar    = $pb->num_bar();
     |   $next_group = $pb->next_group();
     |  +-----------------------------------------------
     */
     function next_group($char='') {
      $pagecount = $this->pagecount;
      $linkhead  = $this->linkhead;
      $totalpage = $this->total_page;
      $num    = $this->num;
      $mid       = floor($num/2);
      $last      = $num; 
      $minpage   = (($pagecount-$mid)<1)?1:($pagecount-$mid);
      $maxpage   = $minpage + $last;
      if ($maxpage>$totalpage) {
       $maxpage = $totalpage;
       $minpage = $maxpage - $last;
       $minpage = ($minpage<1)?1:$minpage;
      }  $char = (empty($char))?"[>>]":$char;
      $ngpagecount = ($totalpage>$maxpage+$last)?$maxpage + $mid:$totalpage;  return "<a href='$linkhead"."pagecount=$ngpagecount' title=\"next group number bar\">".$char."</a>";
     }
     #End of function next_group(); /**+-----------------------------------------------
     | 取得整个数字条,上一页,下一页,上一组
     |   下一组的等.$num数字个数,$color 当前链接的突显色
     | i.e. $pb               = new PageBar(50, 10);
     |        $whole_num_bar    = $pb->whole_num_bar(9);
     |  +-----------------------------------------------
     */
        function whole_num_bar($num='', $color='', $maincolor='') {
         $num_bar = $this->num_bar($num, $color, $maincolor);
      return  $this->first_page(1, '', $maincolor).$this->pre_group("<font color='$maincolor'>[<<]</font>").$this->pre_page("<font color='$maincolor'>[<]</font>").$num_bar.$this->next_page("<font color='$maincolor'>[>]</font>").$this->next_group("<font color='$maincolor'>[>>]</font>").$this->total_page(1, '', $maincolor);
        }
     #End of function whole_bar();
      /**+-----------------------------------------------
     | 取得整链接,等于whole_num_bar加上表单跳转.
     |   $num数字个数,$color 当前链接的突显色
     | i.e. $pb           = new PageBar(50, 10);
     |        $whole_bar    = $pb->whole_bar(9);
     |  +-----------------------------------------------
     */
     function whole_bar($jump='', $num='', $color='', $maincolor='') {
      $whole_num_bar = $this->whole_num_bar($num, $color, $maincolor)."&nbsp;";
      $jump_form     = $this->jump_form($jump);
      return <<<EOT
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr> 
        <td align="right">$whole_num_bar</td>
        <td width="50" align="right">$jump_form</td>
      </tr>
    </table>
    EOT;
     } /**+-----------------------------------------------
     | 跳转表单
     |   i.e. $pb           = new PageBar(50, 10);
     |        $Jump_form    = $pb->Jump_form();
     |  +-----------------------------------------------
     */
     function Jump_form($jump='') {
      $formname = "pagebarjumpform".$jump;
      $jumpname = "jump".$jump; 
      $linkhead = $this->linkhead;
      $total   = $this->total_page;
      $form = <<<EOT
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
     <script language="javascript">
      function $jumpname(linkhead, total, page){
       
       var pagecount = (page.value>total)?total:page.value;
       pagecount = (pagecount<1)?1:pagecount;
       location.href = linkhead + "pagecount=" + pagecount;
       return false;
      }
     </script>
           <form name="$formname" method="post" onSubmit="return $jumpname('$linkhead', $total, $formname.page)"><tr>
              <td>
            <input name="page" type="text" size="1">
      <input type="button" name="Submit" value="GO" onClick="return $jumpname('$linkhead', $total, $formname.page)">
          </td>
            </tr></form></table>
    EOT; return $form;
     }
     #End of function Jump_form();}
    #End of class PageBar;
    /*****
     //example$total = 1000;
    $onepage = 20;$pb       = new AsPagebar($total, $onepage);
    $offset   = "offset=".$pb->offset();
    $pagebar1  = $pb->whole_bar();
    $pagebar2  = $pb->whole_bar(2, 19);
    $pagebar3  = $pb->whole_bar(3, 5, '#000000', '#cccccc');
    echo $offset."<br>".$pagebar1."<br>";
    echo $offset."<br>".$pagebar2."<br>";
    echo $offset."<br>".$pagebar3."<br>";/** return:
       offset=0
    [1][<<][1][2][3][4][5][6][7][8][9][10][>][>>][50]     
       
    *****/
    ?>
    用起来很不错的呀,功能很齐全。谢谢各位了,准备结贴了。