我正在我的项目中创建一个评论系统。我希望每个发布的问题都有评论。我能够发表评论,但我有一个问题,显示所有评论它的相应答案。我只能显示一行但不能显示评论的行。我尝试使用一个while循环嵌套在while的echo每个问题,但它挂起。当我使用时,如果它只显示每个问题的评论的第一行。
所以我的问题是我怎样才能展示它们?
<div class="answer">
<?php
include 'db.php';
$sql = "select * from answers where questionrid IN(select id from question where id='$qid')";
$result = mysqli_query($con,$sql);
if($result){
while($ro = mysqli_fetch_assoc($result)){
?>
<div class="a_view">
<pre>
<?php
echo $ro["answer"];
?>
</pre>
</div>
<div class="ans_comment">
<?php
if($ro["id"]){
$id = $ro["id"];
$sqli = "SELECT * FROM comments WHERE answerid='$id'";
$query = mysqli_query($con,$sqli);
$row = mysqli_fetch_assoc($query);
$num = mysqli_num_rows($query);
while($row){
?>
<div><?php echo $row["comments"];?></div>
<?php
}
}
?>
</div>
<div class="add"><div class="coment">add a comment</div> <div id="coment">
<form class="cform" method="post" action="acomment.php">
<textarea type="text" name="comment" class="tcomment" placeholder="add your comment here,your is
required to give correction or more information about the problem"></textarea><br><br>
<input type="hidden" value="<?php echo $ro["id"]; ?>" name="userid">
<input type="submit" value="Post your comment">
</form>
</div></div>
<?php
}
}else{
echo "no record";
}
?>
<?php
$con->close();
?>
这是使其挂起的部分
while($row){
?>
<div><?php echo $row["comments"];?></div>
<?php
}
当我使用if
时,它只会回显一行。
答案 0 :(得分:2)
而不是
while($row){
就像你在上面的while
循环
while($row = mysqli_fetch_assoc($query)){
现在你的方式,$row
永远不会改变,因此总是评估为true
,让你陷入困境。