0

コメントシステムに問題があります。コメントの追加は機能し、MySqlテーブルには送信された正しいコメントが表示されます。ただし、テーブルの内容をエコーすると、登録されたすべてのユーザーに対してコメントが出力されます。つまり、単に言うのではなく... 2012年11月4日にジェームズによってこんにちは2012年11月4日にジェームズによってこんにちは2012年11月4日にトムによってこんにちは2012年11月4日にエマによってこんにちはなど。

私が言ったように、MySqlテーブルにはコメントが1つだけ表示され、コメントをアップロードしたユーザーの正しい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 に答える