我的评论系统有问题。添加评论有效,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";
}
}
?>