mysql 2张表,一张表记录帖子,为父表,一张表记录所有帖子的回复,为子表现在 在子表里有父表的帖子ID,然后,请问该用什么语句查询出每个帖子的回复内容并显示在每个帖子里。之前问过这个问题,因为还是不了解,所以又问了。$str="select pinglun.mingzi,pinglun.neirong from pinglun ,tiezi where pinglun.id=tiezi.id" ; 是不是用以上的双表查询语句,但是不行,求教,求教

解决方案 »

  1.   

    父贴 id=1 table:table1子帖 pid=1 table:table2SELECT table2.*,t1.id FROM table2  AS t2,table1 AS t1 WHERE t2.pid=t1.id;嗯 大约是这个样子.你的评论id 保存的时候是父id吗?可不能用自增...这个必须要保存父id 才能关联起来呀.
      

  2.   

    表结构,一个帖子表表名:tiezi,
    字段包括  id (帖子id)  biaoti(帖子标题)  time(发帖时间)帖子回复表
    表明:pinglun 
    字段包括 id(记录父帖子的id)  neirong(评论内容) time (评论时间)用了妞妞的查询语句,我改了下$str="select pinglun.*,tiezi.id from pinglun ,tiezi  where pinglun.id=tiezi.id;" 这个语句查询出来的结果还是所有的评论内容,是不是要让每个帖子显示自己的帖子评论内容还有更进一步的操作?
      

  3.   


    $str="select pinglun.*,tiezi.id from pinglun ,tiezi where pinglun.id=tiezi.id;"  
    语句里里的2个tiezi.id是否都要指定呢,其实不太明白第一个tiezi.id的意思tiezi.id是不是表单传递过来的数据,还是自增的
      

  4.   


    $str="select pinglun.*,tiezi.id from pinglun ,tiezi where pinglun.id=tiezi.id and pinglun.id=$_POST['id'];"  
      

  5.   

    刚看到你给我发了两条消息,我 发现回复不了了,我就回复在这里好了第一个是关于PHP输出不同内容的
    用ajax...html ajax 传递不同的参数给php,php根据参数内容返回不同的内容给html...这个构架里经常用到的呀第二个是关于是否使用数据库的
    这个用什么都可以 甚至是文本文件都可以,主要是要看你的访问量和数据量 以后维护/性能 来考虑的.当然用关系数据库的话是比较好的选择.因为这些东西以后有各种查询什么修改之类的.如果仅仅是练习一下的话那就可以先不去设计数据库这个内容.
      

  6.   

    3Q,
    语句调试成功,最后一个问题,也是很困扰我的问题
    $str="select pinglun.*,tiezi.id from pinglun ,tiezi where pinglun.id=tiezi.id and pinglun.id=$_POST['id'];"每次在一个帖子回复之后,其他的帖子都会显示出这个帖子里的评论内容,
    不能做到不同的贴子里显示不同的评论内容$_POST['id'] 因为是个变量,如果用ID为1的帖子评论,则所有其他帖子都显示了本应该只显示在ID为1的帖子里的内容,
    如用ID为2的帖子评论,则其它帖子全显示ID为2的,
    这个咋整,因为以前没涉及过这种
      

  7.   

    <?php session_start(); ?>
    <?php
    $id=$_SESSION['id'];$link_ID=mysql_connect("localhost","root","198600");
    mysql_select_db("my_db"); $str="select pinglun.*,tiezi.id from pinglun ,tiezi  where pinglun.id=tiezi.id and pinglun.id='$id';" ; 
    $result=mysql_query($str, $link_ID); 
    $rows=mysql_num_rows($result); @mysql_data_seek($result,$rows-15); 
    if ($rows<15) $l=$rows; else $l=15; for ($i=1;$i<=$l;$i++) {
    list($mingzi,$dizhi,$time,$neirong,$id,$tieziid)=mysql_fetch_row($result);echo $mingzi; echo ":"; echo $neirong;echo $tiezidi;
    echo "<BR>" ;
    }mysql_close($link_ID);
    ?>这是输出的php文件
      

  8.   

    帖子列表中, 每个帖子都应该有一个GET参数的URL标明帖子ID。
      

  9.   

    网站是一层一层深入浏览的, 你在生成帖子列表的时候, 每个帖子的超链接就生成这样:www.mywebsite.com/view_tiezi.php?id=tiezi1
    www.mywebsite.com/view_tiezi.php?id=tiezi2
    www.mywebsite.com/view_tiezi.php?id=tiezi3这样用户一点击超链接, 不就调用view_tiezi.php了吗,$_GET['id']不就知道用户想看哪个帖子了吗。
      

  10.   

    示例
    CREATE TABLE IF NOT EXISTS `bbs` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `pid` int(11) DEFAULT NULL,
      `author` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
      `headline` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
      `content` text CHARACTER SET utf8,
      `dates` datetime DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 ;
    数据库函数function query($sql='') {
      mysql_connect();
      mysql_select_db('test');
      mysql_query('set names gbk');//根据需要改更字符集  $ret = array();
      if(empty($sql)) return $ret;
      if(is_array($sql)) {
        $tbl_name = key($sql);
        $f = join(',', array_keys(current($sql)));
        $v = join("','", array_values(current($sql)));
        $sql = "insert into $tbl_name ($f) values ('$v')";
      }
      $rs = mysql_query($sql) or die(mysql_error());
      if(preg_match('/^select\s/i', $sql))
        while($r = mysql_fetch_assoc($rs)) $ret[] = $r;
      return $ret;
    }
    主体include 'template.php';
    include 'query.php';function lists() {
      return query("select * from bbs where pid=0 order by id desc limit 10");
    }function main() {
      return query("select * from bbs where id=$_GET[id] or pid=$_GET[id] order by id=$_GET[id] desc");
    }$tpl =<<< TPL
    <table width=100% dsn="lists">
    <tr><td width=60%><a href="?id={id}">{headline}</a></td><td>{author}</td><td>{dates}</td></tr>
    </table>
    <form method=post>
    作者<input type=text name=author><br>
    标题<input type=text name=headline size=76><br>
    <textarea name=content rows=10 cols=80></textarea><br>
    <input type=submit value=提交>
    </form>
    TPL;if(isset($_GET['id'])) $tpl1 =<<< TPL
    <a href="?">返回列表</a>
    <table width=100% dsn="main,1">
    <tr><td width=60%>{headline}</td><th>{author}</th><td>{dates}</td><tr>
    <tr><td colspan=2><xmp>{content}</xmp></td></tr>
    </table>
    <form method=post>
    作者<input type=text name=author><br>
    <textarea name=content rows=10 cols=80></textarea><br>
    <input type=hidden name=pid value=$_GET[id]>
    <input type=submit value=回复>
    </form>
    TPL;if($_SERVER['REQUEST_METHOD'] == "POST") {
      $_POST['dates'] = date('Y-m-d H:i:s');
      query(array('bbs' => $_POST));
    }else if(isset($_GET['id'])) $tpl = $tpl1;new template($tpl);整个过程就是这么简单