主贴留言的ID和回复的ID
两个分别为:ID,name,text,time,ip,icon,PID   //主留言表
huifu_ID,name,text,time,ip      //回复表
在回复的表上我去掉了定位网页的PID,还有表情的ICON 字段。我还写少了什么东西?这样怎么关联关联后,怎么让留言和回复都可以显示到一个页面里?不能显示就什么都白搭了。

解决方案 »

  1.   

    1,在主留言表和回复表中设置一个共有ID,在你这个问题里,只需要在回复表中增加个外键到住留言表的ID上去就行。
    2,然后查询时带WHERE 外键名=id。
      

  2.   

    主表主键 次表使用外键关联上去.比如 主表是 name 那么就创建的时候给他主键
    然后第2个表的name 就外键在写查询的时候 最后 where a.name=b.name;
      

  3.   

    主留言是ID,那么回复表也加个ID是吧?然后怎么关联?加上就关联了吗?还是要在MYSQL里设置什么东西?
      

  4.   


    1.创建主键语法
    ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
    2.创建外键语法
    ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
    3.使用组合主键
    如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式
    ①创建时:create table sc (
    studentno int,
    courseid int,
    score int,
    primary key (studentno,courseid) );
    ②修改时:alter table tb_name add primary key (字段1,字段2,字段3);复制的 我一般都在工具里创建.省事.
      

  5.   


    创建数据库我都不用命令行代码的,太麻烦,我都是用界面版本鼠标设置的,已经设置好外键了
    在写查询的时候 最后 where a.name=b.name;麻烦你给个完整的SQL代码,这样看不明白,WHERE的前面是什么表等都没有写。
      

  6.   

    huifu_id  huifu_text  huifu_time           huifu_ip     id  
    1          大撒旦撒       2011-06-12 17:59:24 127.0.0.1    13 
    2          大撒旦撒       2011-06-12 17:59:27 127.0.0.1    13 
    3          000000000000 2011-06-12 18:16:15 127.0.0.1    14 后面的ID已经显示是回复第几楼,但是显示部分无法显示出来,我的显示部分的SQL语句是这样的ddr是主留言表,fdr是回复表$r=mysql_query("select * from ddr  order by id DESC limit $offset,$pagesize");  
    while($row=mysql_fetch_array($r))如何修改,加入回复表的部分?
      

  7.   


    $ac=mysql_query("select * from  fdr  order by huifu_id ASC ");  $r=mysql_query(" select * from  ddr  order by id DESC limit $offset,$pagesize  "); 我用两个查询可以实现楼中回复,也可以实现翻页,但是只能够显示第1楼的回复 而已,其他都是不见的,不知道错在哪?while($row=mysql_fetch_array($r))
    {
    ?>
      <p><font color="#0000FF"><?=$row[0]?>楼  &nbsp&nbsp&nbsp<?=$row[1]?> </font>&nbsp&nbsp
    <font color="#778899">
     <?=$row[3]?> </font>&nbsp&nbsp  
    <?$ipc=$row[4]?>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
    </p>    <td height="32"><p><br> <font color="#000000"><?=nl2br($row[2])?></font> <img src="<?=$row[5]?>">&nbsp</p><font color="#778899"> </font>
      
    <?while($ro=mysql_fetch_array($ac))
    {if($ro[4]==$row[0]) 
    {//显示回复部分
     ?> 
    -------------------------------------------------------------------------------------
    <br> 
    <?$ipc=$ro[3]?>
     <font color="#C71585">的回复: </font> 
    <font color="#778899">
      <?=$ro[2]?>      </font> <br><?=nl2br($ro[1])?>
    <br> <?
     
    }}
    ?> 
    <hr/><?
    }
    ...........................
      

  8.   

    本帖最后由 xuzuning 于 2011-06-13 08:18:08 编辑
      

  9.   

    $r=mysql_query(" select * from  ddr,fdr  order by ddr.id=fdr.huifu_id  DESC  ");  这样写会出现很多个重复楼,回复多少个就重复多少个楼,   我不知道怎么在有回复的楼上显示回复的留言,