<?
require_once('conn.php');
require_once ('panduan.php');
if (!isset($_SESSION)){
    @session_start();
    }
$Uid=$_SESSION["Uid"];
$sql="select * from reply  where Uid='$Uid'";
$queryresult=$obj->exec($sql);
$ggallrows=$obj->num_rows($queryresult);
$arrrow=$obj->fetch($queryresult);
  for($a=0;$a<$ggallrows;$a++){
    $uid=$arrrow[$a]["Uid"];
$tid=$arrrow[$a]["Tid"];
  }
?>
<html>
<head>
<title>查看自己所回的帖</title>
<link href="css.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table border="0" width="100%">
<tr><td><? require_once ('head.php');?></td></tr>
<tr><td>
<table width="100%" border="1"> 
<?  
  $Page_size = 15;
  $page_count = ceil($ggallrows/$Page_size);
    
  $init='1';
  $page_len='7';
  $max_p=$page_count;
  $pages=$page_count;           //判断当前页码
  if(empty($_GET['page'])||$_GET['page']<0){
  $page=1;
  }else {
  $page=$_GET['page'];
}
  $offset=$Page_size*($page-1);
  $result="SELECT * FROM reply where Uid='$uid' order by Rdate DESC limit $offset,$Page_size";
$queryr=$obj->exec($result);
$i == 0;
  while ($row=mysql_fetch_array($queryr)){
 $Tid=$row['Tid'];
 $Rdate=$row['Rdate'];
 
 $til="select * from topic where Tid='$Tid'";
 $rs=$obj->fetchrow($til);
 $Title=$rs->Title;
 $Tdate=$rs->Tdate;
 $Tcontent=$rs->Tcontent;
 $Ud=$rs->Uid;
 $Un="select nicheng from users where Uid='$Ud'";
 $rs=$obj->fetchrow($Un);
 $Uname=$rs->nicheng;
  
 $zht="select Tid from reply where Tid='$Tid'";
 $zhht=$obj->exec($zht);
 $zhrow=$obj->num_rows($zhht);
 
 $last="select Uid,Rdate from reply where Tid='$Tid'";
 $rs=$obj->fetchrow($last);
 $lastrep=$rs->Uid;
 $lasttime=$rs->Rdate;
 $re="select nicheng from users where Uid='$lastrep'";
 $rs=$obj->fetchrow($re);
 $Unm=$rs->nicheng;
?>
<?
 if($i%1==0){
?>
        <tr style=" text-align:left; margin-top:0;">
<? 
          } 
?>
       <td>
   <table border="0" width="100%">
   <tr><td>
   <table border="0" style="margin-left: 20px;">
   <tr><td>发帖标题:</td><td><a href="reply.php?Title=<?=$Title;?> & Tdate=<?=$Tdate;?> & Tcontent=<?=$Tcontent;?> & Uname=<?=$Uname;?> & Tid=<?=$Tid;?>"><?=$Title;?></a></td></tr>
   <tr><td>发帖时间:</td><td style="color:#808080; font-size: 10.8px;"><?=$Tdate;?></td></tr>
   </table></td><td align="right">
   <table border="0" style="text-align:center;">
   <tr><td><?=$zhrow;?></td><td><?=$Unm;?></td></tr>
   <tr><td>&nbsp;</td><td style="color:#808080; font-size: 10.8px;"><?=$lasttime;?></td></tr>
   </table></td></tr></table>
   </td>
<?
 if($i%1==0){
?>
      </tr>
<? 
          } 
?>
<?
$i++;
}
  $page_len = ($page_len%2)?$page_len:$pagelen+1;    //页码个数
 $pageoffset = ($page_len-1)/2;       //页码个数左右偏移量
  $key='<div class="page">';
  $key.="<span>$page/$pages</span>&nbsp;";   //第几页,共几页
  if($page!=1){
  $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=1\">第一页</a> ";    //第一页
  $key.="<a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\">上一页</a>"; //上一页
}else {
  $key.="第一页 ";//第一页
  $key.="上一页"; //上一页
}
  if($pages>$page_len)
{                 //如果当前页小于等于左偏移
  if($page<=$pageoffset){
  $init=1;
  $max_p = $page_len;
  }else
{                    //如果当前页大于左偏移
                    //如果当前页码右偏移超出最大分页数
  if($page+$pageoffset>=$pages+1){
  $init = $pages-$page_len+1;
  }else
{                  //左右偏移都存在时的计算
  $init = $page-$pageoffset;
  $max_p = $page+$pageoffset;
  }
  }
   }
    for($i=$init;$i<=$max_p;$i++){
  if($i==$page){
  $key.=' <span>'.$i.'</span>';
  } else {
  $key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\">".$i."</a>";
  }
   }
   if($page!=$pages){
  $key.=" <a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\">下一页</a> ";//下一页
  $key.="<a href=\"".$_SERVER['PHP_SELF']."?page={$pages}\">最后一页</a>"; //最后一页
  }else {
  $key.="下一页 ";//下一页
  $key.="最后一页"; //最后一页
  }
  $key.='</div>';
?> 
<tr>
          <td height="14" colspan="4" style="text-align:center; font-size:12px"><?=$key; ?></td>
        </tr>
</table>
</td></tr></table>
</body></html>帮我看哈上面的要怎么修改才能让它循环显示的时候重复的只输出一条
或者谁有更好的查看自己所回复的贴的代码
谢谢你发给我一哈!

解决方案 »

  1.   

    重复的就是一样的,比如:SELECT * FROM reply where Uid='$uid'得到五条数据,可有三条是一样的,我想把这三条一样的变成一条,这样要怎么改才能实现啊。
      

  2.   

    如果 3 条重复的只保留 1 条,你可以使用 DISTINCT 修饰
    如果 3 条重复的需要组装在一起,就需要自己写代码,或使用 CONCAT_GROUP 函数,不知你的数据库是否支持
      

  3.   

    我用的是mysql,在查看自己所回复的贴的时候是这样的,比如:
    a 发一张贴,标题是a,内容是a,现在b 来评这张贴,b-a,当a看到了a又回帖a-b-a,然后b又看到后,b又回复b-a-b-a,就这样一直循环。,可是现在我在查看自己所回复的贴的时候,就会出现a这张贴重复在查看自己所回的贴里面,其实就是同一张帖,只是回复几次而已,你看哈能不能帮我,谢谢啊!
      

  4.   

    那你到底是要求最新帖还是要求最新回复?
    最新帖就直接从帖子表里取,最新回复(不重复)的话,GROUP BY Tid
      

  5.   

    可是 group by Tid插在哪里,我插在$result="SELECT * FROM reply where Uid='$uid' group by Tid order by Rdate DESC limit $offset,$Page_size";查询后没有取得最新值排在前面
      

  6.   

    group by 和 order by 同时用时要注意:
    例子:
    select reply from (select * from reply where Uid='$uid' order by Rdate DESC limit $offset,$Page_size";) t1 group by t1.tid
      

  7.   

    GROUPBY和ORDER BY可以用于同一个SELECT语句里,但必须遵守一定的次序:GROUP BY子句永远在ORDER BY之前。
      

  8.   

    select * from (select * from reply where Uid='$uid' order by Rdate DESC limit $offset,$Page_size";) t1 group by t1.tid
    不知道这样对不对。
      

  9.   

    select * from (select * from reply where Uid='$uid' order by Rdate DESC limit $offset,$Page_size) t1 group by t1.tid
      

  10.   

    没有显示是什么意思?没有一条记录吗?
    select * from reply where Uid='$uid' order by Rdate DESC limit $offset,$Page_size
    这条能出来吗?
      

  11.   

    select * from (select * from reply where Uid='$uid' order by Rdate DESC limit $offset,$Page_size) t1 group by t1.tid
    就一条都没有显示
    select * from reply where Uid='$uid' order by Rdate DESC limit $offset,$Page_size
    就和我以前的一样
      

  12.   

    select * from reply where Uid='$uid' order by Rdate DESC limit $offset,$Page_size
    出来有多少条记录?
    group by t1.tid
    就是从你上面的记录中分组显示。