编写一个PHP程序,调用一个分页类,可是显示不出来,希望大侠指点!调试成功就给分!
下面是我的php程序
<?php
echo "<B>Hier sind die Tabell der allen Mineralwasser!";
 include 'conn.php';
 include 'list1.php';
 $page=$_GET["page"];
 if(empty($page)) $page=1;
 $rs = mysql_query ("SELECT * FROM mineralwasser ORDER BY name ASC");
 $total=mysql_num_rows($rs);
 $obj=new pagec($total,'3','list.php'); 
 //pageft($total,3);
 print "<table border='1'>";
 print "<th align = 'center'>Name des Produkts</th>";
 print "<th align = 'center'>Firma</th>";
 print "<th align = 'center'>Wasser Type</th>";
 print "<th align = 'center'>Beschreibung des Produkts</th>";
 print "<th align = 'center'>Bestandteile des Wassers</th>";
 print "<th align = 'center'>Weitere Information</th>";
//'$obj->.pagestart($page).'
 $sql="select * from mineralwasser limit '$obj->.pagestart($page).',3";
 $result=mysql_query($sql);
  //$result = mysql_query ("SELECT * FROM mineralwasser ORDER BY name ASC limit $firstcount,$displaypg");
   while ($row = mysql_fetch_array($result))
   { 
   print "<tr> ";
   print "<td align = 'center'>{$row["name"]}</td>";
   print "<td align = 'center'>{$row["unternehmen_name"]}</td>";
   print "<td align = 'center'>{$row["wassertyp"]}</td>";
   print "<td align = 'center'>{$row["beschreibung"]}</td>";
   print "<td align = 'center'>{$row["enthalt"]}</td>";
   print "<td align = 'center'><a href='unternehmen.php?such_id={$row["unternehmen_id"]}' target='_self'>Hier sind weitere Information</a></td><br></n>";
   print "</tr> ";
  
   }
  
   print "</table></br>";
   //echo $pagenav;
   echo   $obj->pageindex($page);
   echo "<center><a href=http://localhost/Restaurant/count.php>zurück</a>";
?>下面是分页类程序
<?phpclass pagec
{
var   $size;   //总数   如1000
var   $pagesize;//每页条数   如   20
var   $url;//   文件名   如   list.php//构造函数。
        //参数$pagesize用来指定每页显示多少条记录,如果不指定,表示全部显示而不用分页
        //使用方法:
        //               $obj=new   pagec( '1000 ',   '20 ',   'list.php ');
        //或:       $obj=new   pagec();
        //               $obj-> size= "1000 ";
        //               $obj-> pagesize= "20 ";
//               $obj-> url= "list.php ";
function  pagec($size,$pagesize,$url)
{
$this->size=$size;
$this->pagesize=$pagesize;
$this->url=$url;
}
//获取当前页开始记录。
        //参数$page用来指当前页
        //使用方法:
        //               $obj=new   pagec( '1000 ',   '20 ',   'list.php ');
//               $obj-> pagestart($page);
//               $sql   =   "select   *   from   mytable   order   by   id   desc   limit   ".$obj-> pagestart(1). ",   $pagesize   ";   第一页
function  pagestart($page=1)
{
return ($page-1)*$this->pagesize;
}//     开始分页导航条代码:
//     使用方法:
//     echo   $obj-> pageindex($page);function pageindex($page)
{
//var   $pagenav;
 
$size=ceil($this->size/$this->pagesize);//共页数//如果只有一页则跳出函数:  
if($size<=1)  
return pagenav;  $pagenav.="<a href='$this->url?page=1'>  首页 </a>";  
if($page>1)
{
$ipage = $page-1;
$pagenav.= "<a href='$this->url?page=$ipage'>  前页 </a> ";  
}
else  
$pagenav.= "   前页   ";if($page<$size)  
{
$ipage = $page+1;
$pagenav.="<a href='$this->url?page=$ipage'> 后页 </a>";  
}
else  
$pagenav.= "   后页   ";  
$pagenav.="<a href='$this->url?page=$size'> 尾页 </a> ";  //下拉跳转列表,循环列出所有页码:  
$pagenav.="到第  <select name='topage' size='1' onchange='window.location=\'$this->url?page=\ '+this.value'>\n";  for($i=1;$i<=ceil($this->size/$this->pagesize);$i++)
{  
if($i==$page)
$pagenav.="<option value='$i' selected> $i </option> \n ";  
else  
$pagenav.="<option value='$i'> $i </option> \n";  
}  
$pagenav.="</select> 页,共   $size 页   ".$this->size."条记录 ";  
return $pagenav;
}
}
?> 

解决方案 »

  1.   

    完全讲解PHP+MySQL的分页显示示例分析 
      Web开发是今后分布式程式开发的主流,通常的web开发都要涉及到与数据库打交道,客户端从服务器端读取通常都是以分页的形式来显示,一页一页的阅读起来既方便又美观。所以说写分页程序是web开发的一个重要组成部分,在这里,我们共同来研究分页程序的编写。 一、分页程序的原理   分页程序有两个非常重要的参数:每页显示几条记录($pagesize)和当前是第几页($page)。有了这两个参数就可以很方便的写出分页程序,我们以MySql数据库作为数据源,在MySQL里如果要想取出表内某段特定内容可以使用的T-SQL语句:select * from table limit offset,rows来实现。这里的offset是记录偏移量,它的计算方法是offset=$pagesize*($page-1),rows是要显示的记录条数,这里就是$page。也就是说select * from table limit 10,10这条语句的意思是取出表里从第11条记录开始的20条记录。 二、主要代码解析 $pagesize=10; //设置每一页显示的记录数
    $conn=mysql_connect("localhost","root",""); //连接数据库
    $rs=mysql_query("select count(*) from tb_product",$conn); //取得记录总数$rs
    $myrow = mysql_fetch_array($rs);
    $numrows=$myrow[0];//计算总页数$pages=intval($numrows/$pagesize);//判断页数设置if (isset($_GET['page'])){
     $page=intval($_GET['page']);
    }
    else{ 
     $page=1; //否则,设置为第一页

    三、创建用例用表myTable 
    create table myTable
    (id int NOT NULL auto_increment,news_title varchar(50),
    news_cont text,add_time datetime,PRIMARY KEY(id))  
    四、完整代码 <html>
    <head>
    <title>php分页示例</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
    </head><body>
    <?php
     $conn=mysql_connect("localhost","root","");
     //设定每一页显示的记录数
     $pagesize=1;
     mysql_select_db("mydata",$conn);
     //取得记录总数$rs,计算总页数用
     $rs=mysql_query("select count(*) from tb_product",$conn);
     $myrow = mysql_fetch_array($rs);
     $numrows=$myrow[0];
     //计算总页数 $pages=intval($numrows/$pagesize);
     if ($numrows%$pagesize)
    $pages++;
     //设置页数
     if (isset($_GET['page'])){
    $page=intval($_GET['page']);
     }
     else{
    //设置为第一页 
    $page=1;
     }
     //计算记录偏移量
     $offset=$pagesize*($page - 1);
     //读取指定记录数
     $rs=mysql_query("select * from myTable
     order by id desc limit $offset,$pagesize",$conn);
     if ($myrow = mysql_fetch_array($rs))
     {
    $i=0;
    ?>
    <table border="0" width="80%">
    <tr>
     <td width="50%" bgcolor="#E0E0E0">
    <p align="center">标题</td>
    <td width="50%" bgcolor="#E0E0E0">
    <p align="center">发布时间</td>
    </tr>
    <?php
     do {
    $i++;
    ?>
    <tr>
     <td width="50%"><?=$myrow["news_title"]?></td>
     <td width="50%"><?=$myrow["news_cont"]?></td>
    </tr>
     <?php
     }
     while ($myrow = mysql_fetch_array($rs));
    echo "</table>";
    }
    echo "<div align='center'>共有".$pages."页(".$page."/".$pages.")";
    for ($i=1;$i< $page;$i++)
     echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
     echo "[".$page."]";
     for ($i=$page+1;$i<=$pages;$i++)
    echo "<a href='fenye.php?page=".$i."'>[".$i ."]</a> ";
    echo "</div>";
     ?>
    </body>
    </html>  五、总结 本例代码在windows2000 server+php4.4.0+mysql5.0.16上运行正常。该示例显示的分页格式是[1][2][3]…这样形式。假如想显示成“首页 上一页 下一页 尾页”这样形式,请加入以下代码: 
    $first=1;
    $prev=$page-1;
    $next=$page+1;
    $last=$pages;if ($page > 1)
    {
     echo "<a href='fenye.php?page=".$first."'>首页</a> ";
     echo "<a href='fenye.php?page=".$prev."'>上一页</a> ";
    }if ($page < $pages)
    {
     echo "<a href='fenye.php?page=".$next."'>下一页</a> 
     echo "<a href='fenye.php?page=".$last."'>尾页</a> ";
    } 其实,写分页显示代码是很简单的,只要掌握了它的工作原理。
      

  2.   

    Catchable fatal error: Object of class pagec could not be converted to string in C:\workspace\Restaurant\list.php on line 19
    这是错误信息!
      

  3.   

    $obj->.pagestart($page)把点去掉
      

  4.   

    在每个 mysql 操作函数后面加mysql_error();比如mysql_query("ELECT * FROM mineralwasser ORDER BY name ASC") or dir(mysql_error());