0

我的评论系统有问题。添加评论有效,MySql 表显示已提交的正确评论。但是,当回显表格的内容时,会为每个注册用户打印评论。即,而不是只是说......詹姆斯在 2012 年 4 月 11 日打招呼,它会在 2012 年 4 月 11 日打招呼詹姆斯打招呼 2012 年 11 月 4 日汤姆打招呼 2012 年 4 月 11 日艾玛打招呼等。

就像我说的,MySql 表只显示一条评论,它显示了上传评论的用户的正确 user_id 编号(对应于 users 表中的 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";
                }
            }
?>
4

1 回答 1

1

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

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

连接仅将表连接在一起,但它不会“过滤掉”结果,因为您仍然需要 WHERE 子句

于 2012-04-11T14:27:45.840 回答