首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » [原创]请求帮助  


  作者:jhchj
  注册时间:2004-10-26
  主题/回复:3/3
  积分:418
  等级:★★☆(五级)
  称号:略有小成

  jhchj@126.com
  未提供
  www.

 

 发表:2004-11-07 18:01:42 阅读 2268 次 回复 8 次 得分1  |   字号 字色
[原创]请求帮助
我想把数据库里的数据分页显示出来,但结果没有任何数据出现,希望哪位朋友能帮小弟看一下错误出在什么地方.这个分页的代码是网上找的.
<?
$link=mysql_connect("localhost","root","");
mysql_select_db("mybook",$link);
$query="select * from book  ";
$result=mysql_query($query);
$numrows=mysql_num_rows($result);
//echo $numrows;
if($numrows==0)
  echo"暂无留言!";
else
  {
  // 获取当前页数
 if( isset($_GET['page']) ){
     $page = intval( $_GET['page'] );
    }
 else{
     $page = 1;
  } 
// 每页数量
 $PageSize = 10; 
// 获取总数据量
 $sql = "select count(*) as amount from book";
 $result = mysql_query($sql);
 $row = mysql_fetch_row($result);
 $amount = $row['amount']; 
// 记算总共有多少页
 if( $amount ){
    if( $amount < $page_size ){ $page_count = 1; }   //如果总数据量小于$PageSize,那么只有一页
    if( $amount % $page_size )         //取总数据量除以每页数的余数
    {  $page_count = (int)($amount / $page_size) + 1; }  //如果有余数,则页数等于总数据量除以每页数的结果取整再加一
else{ $page_count = $amount / $page_size;  }    //如果没有余数,则页数等于总数据量除以每页数的结果
    
       }
    else{
    $page_count = 0;
     }

// 翻页链接
    $page_string = '';
    if( $page == 1 ){
  $page_string .= '第一页|上一页|';
     }
    else{
  $page_string .= '<a href=?page=1>第一页</a>|<a href=?page='.($page-1).'>上一页</a>|';
    } 



    if( ($page == $page_count) || ($page_count == 0) ){
  $page_string .= '下一页|尾页';
    }
    else{
  $page_string .= '<a href=?page='.($page+1).'>下一页</a>|<a href=?page='.$page_count.'>尾页</a>';
  }
// 获取数据,以二维数组格式返回结果

 if( $amount ){
   $sql = "select * from book ". ($page-1)*$page_size .", $page_size";
   $result = mysql_query($sql);
   
 while ( $row = mysql_fetch_row($result) ){
   $rowset[] = $row;
   
   
   

   echo"<tr>
     <td>$rowset[0]</td>
     <td>$rowset[1]</td>
     <td>$rowset[2]</td>
     <td>$rowset[3]</td>
     <td>$rowset[4]</td>
     <td>$rowset[5]</td>
   </tr>";

   echo"</table>";
    }
 }
  else{
 $rowset = array();
 //echo  $rowset;
 echo"无内容";
    }
}
?>
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2004-11-08 18:13:46  评分:1 

我看了一下,似乎有点错误

你把下面两个地方 
-------------------
// 每页数量
 $PageSize = 10; 
..........
 $sql = "select * from book ". ($page-1)*$page_size .", $page_size";
-------------------
修改成为  
-------------------
$Page_size = 10; 
..............
$sql = "select * from book limit ". ($page-1)*$page_size .", $page_size";
-------------------
试一下。

还有,PHP分页,远远不用这么麻烦,用limit语句可以轻松实现。
详细介绍请察看本站文章
http://www.17php.com/bbs/show_title.php?id=65
 2#楼  
 
  回复人:jhchj
  注册时间:2004-10-26
  主题/回复:3/3
  积分:418
  等级:★★☆(五级)
  称号:略有小成

   
 2#楼 发表于2004-11-08 20:58:53  评分:× 

还是不行,不过谢谢了,如果能找出错误那更好
 3#楼  
 
  回复人:jhchj
  注册时间:2004-10-26
  主题/回复:3/3
  积分:418
  等级:★★☆(五级)
  称号:略有小成

   
 3#楼 发表于2004-11-08 21:18:13  评分:× 

站长,能给出一个完整的例子吗,就是从数据库读出数据然后分页显示
 4#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 4#楼 发表于2004-11-09 17:46:47  评分: 

http://www.17php.com/bbs/show_title.php?id=65
这个你看了没有???
这个就是完整的例子!!!
 5#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 5#楼 发表于2004-11-09 17:48:58  评分: 

还有,"还是不行"是什么意思??程序运行报没报错??
如果没有报错,有什么输出结果??
数据库里面时候否有数据??
 6#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 6#楼 发表于2004-11-09 18:10:09  评分: 

要不干脆把我这个论坛的 BBS.PHP 的原代码贴出来.
你看看这个分页的例子 ::
------------------------------
bbs.php
------------------------------
<?php
include "myphpfunc.nqp";  //我自己写一个的一个类库
$bk=$_GET["bk"];  //显示哪个版块的帖子
//实现所有主题分页显示
$offset=$_GET["offset"];  //当前页从第几条开始显示比如,第一页从0开始
$pagesize=40;     //一页显示40个
if(empty($offset)){   
    $offset=0;
    }
//连接数据库查询出数据
$a=new mysql;
$a->link();
 $query="select * from bbs_title where title_bankuai='$bk' order by last_reply DESC";
 $zt=$a->excu($query);
$count=mysql_num_rows($zt);   //总帖子数
$query.=" limit $offset,$pagesize";   //从$offset开始,取40条
$zt=$a->excu($query);
$pagecount=ceil(($count)/$pagesize);  //判断一共几页
$page=($offset/$pagesize)+1;  //当前是第几页
//分页到此结束
..........................
部分代码与分页无关,略去
..........................

 //循环输出$pagecount篇主题

   while($zt_info=mysql_fetch_array($zt,MYSQL_ASSOC)){ 
echo "<a href=show_title.php?id=$zt_info[id] title=$zt_info[title_title]>";
     echo $title_title;
     echo "</a>";
    }

     ?>

//输出页码
   <?php
   echo "共有文章".$count."篇,每页".$pagesize."篇,共".$pagecount."页";
 echo " ";
 for($i=1;$i<=$pagecount;$i++){
     $offset2=($i-1)*$pagesize;
     if($page!=$i){
     echo " <a href=$PHP_SELF?offset=$offset2&bk=$bk>";
      echo "〖".$i."〗</a>";
     }else{
      echo " <font color=red><b>〖".$i."〗</b></font>";
     }

     }
  ?>
 7#楼  
 
  回复人:jhchj
  注册时间:2004-10-26
  主题/回复:3/3
  积分:418
  等级:★★☆(五级)
  称号:略有小成

   
 7#楼 发表于2004-11-09 19:21:36  评分:× 

站长,原理和代码我都能明白 ,因为我有一点ASP的基础,但问题就出在不能把数据库里的内容输出到表格,你的几个例子里没有这部分啊
 8#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 8#楼 发表于2004-11-10 17:19:07  评分: 

输出到表格太简单了!!

首先输出一个表格头
<table border=1 ................>
<tr>
<td>时间</td>
<td>留言人</td>
<td>内容</td>
</tr>

上面就是一个表格头。然后循环输出表格体

<?php
for 或者 while 语句 {
  echo "<tr>";
  echo "<td>".查询结果."</td>";
  ......
  echo "</tr>";
  }

?>
最后输出一个表格尾
</table>

道理是很简单的,就是把需要循环输出的部分,放在循环体内部。
当然这个例子是输出了若干行,比较简单,如果要输出看起来比较复杂的,比如我这个论坛,循环输出所有回复,用的就是比较复杂的表格,但是只要明白了哪一部分需要重复输出,然后对html语言比较熟悉,那么肯定可以写好!
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.019sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版