2012-04-11 66 views
0

我对评论系统有问题。添加注释有效,MySql表显示已提交的正确注释。但是,当回显表格的内容时,会为每个注册用户打印注释。即,而不是仅仅说... 你好由詹姆斯在11/04/2012它会说你好由詹姆斯在11/04/2012你好由汤姆在11/04/2012你好由艾玛在11/04/2012回应评论会返回所有注册用户的意见评论

就像我说的,MySql表只显示一个评论,它显示上传评论(对应于users表中的id)的用户的正确user_id号码。它一定是我回应评论的方式,但我是PHP和MySql的新手,我不确定我是否正确加入表格。

我会很感激任何帮助。

require_once("db_connect.php"); 
    if($db_server) { 
     //If a connection to the database is made... 
     mysql_select_db($db_database) or die ("<p>Couldn't find database</p>"); 

      //Print out existing comments 
      $result = mysql_query("SELECT * FROM comments JOIN users ON comments.profile_id = $problemID"); 
      if (!$result) die ("Database access failed: " . mysql_error()); 
      $rows = mysql_num_rows($result); 
      for ($j=0; $j<$rows; ++$j) { 
       $str_comments .= "<span class='comment'>" . mysql_result($result, $j, 'comment') . "</span>"; 
       $str_comments .= " bt " . mysql_result($result, $j, 'username'); 
       $str_comments .= " on " . mysql_result($result, $j, 'comm_date') . "</br><br/>"; 
      } 

      //Get any submitted comments and insert into database 
      $comment = clean_string($_POST['comment']); 
      if ($comment != '') { 
       //If the submitted comment is not empty... 
       if (strlen($comment)<200) { 
        mysql_query("INSERT INTO comments (`user_id`, `profile_id`, `comment`) 
           VALUES ('{$_SESSION['user_id']}', $problemID, ('$comment'))") or die(mysql_error()); 
       }else{ 
        $message = "Comment not submitted. The comment must be less than 200 characters long"; 
       } 
      } 
?> 

回答

1

在您的查询中,我没有看到WHERE子句。应该是这样的:

$result = mysql_query("SELECT * FROM comments JOIN users ON comments.profile_id = $problemID WHERE users.id=$userid"); 

联接只联接到表一起,但它并没有“过滤掉”的结果,对于你仍然需要在WHERE子句

+0

完美的只是我是什么了。这是我第一次加入,所以稍微困惑了我。非常感谢。 – GuerillaRadio 2012-04-11 14:41:08

+0

我可以想象:)经常当我建立连接我在查询字段中写入phpmyadmin的查询。它会给你一个很好的结果概述。只是一个小费 – giorgio 2012-04-12 13:43:01