在关于youtube的教程之后,我使用php和mySQL做了一个简单的“评论系统”。它的效果很好,但只有一条评论,如果我再发表评论,它会显示我最后的评论。这是代码(我不包括表单,因为它在这里不相关。):
PHP sendComment.php(index.php形式的动作):
<?php
mysql_connect("127.0.0.1","root","");
mysql_select_db("comments");
$name = $_POST["name"];
$email = $_POST["email"];
$comment = $_POST["comment"];
mysql_query("insert into comments values('','$name','$email','$comment')");
header("location: index.php");
?>
PHP OF index.php:
<?php
mysql_connect("127.0.0.1","root","");
mysql_select_db("comments");
$find_comments = mysql_query("select * from comments");
while ($row = mysql_fetch_assoc($find_comments)) {
$comment_name = $row['name'];
$comment_email = $row['email'];
$comment = $row['comment'];
}
?>
最后,评论:
<div class="comment">
<h2><?php echo "$comment_name";?></h2>
<p><?php echo "$comment";?></p>
</div>
我怎样才能使评论像在facebook中那样叠加?。
PS:我理解教程中的代码,我对PHP和编程有一些了解,但我无法想出办法。
PS 2:我想过使用注释ID来检查它并显示该ID功能的其他元素。是这样的吗?
答案 0 :(得分:1)
看看代码,你总是在while循环中使用相同的vars来存储评论内容,所以最后你只得到了最后的评论。
相反,您可以在循环中打印每个注释:
<?php
mysql_connect("127.0.0.1","root","");
mysql_select_db("comments");
$find_comments = mysql_query("select * from comments");
while ($row = mysql_fetch_assoc($find_comments)) {
?>
<div class="comment">
<h2><?php echo $row['name'];?></h2>
<p><?php echo $row['comment'];?></p>
</div>
<?php
}
?>