2012-04-11 69 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