返回具有相同id的多行PHP查询
我试图让页面显示所有与页面相关的评论。但是,它只返回列表中的第一条注释返回具有相同id的多行PHP查询,php,sql-server-2008,ssms,Php,Sql Server 2008,Ssms,我试图让页面显示所有与页面相关的评论。但是,它只返回列表中的第一条注释 $commentIdQuery = "SELECT commentid FROM COMMENT_RECIPE WHERE RecipeID = '$recipeID[0]'"; $CID = mssql_query($commentIdQuery, $connection); $commentID = mssql_fetch_row($CID); $commentQuery = "SELECT UserID, Rating
$commentIdQuery = "SELECT commentid FROM COMMENT_RECIPE WHERE RecipeID = '$recipeID[0]'";
$CID = mssql_query($commentIdQuery, $connection);
$commentID = mssql_fetch_row($CID);
$commentQuery = "SELECT UserID, Rating, Comment FROM COMMENTS WHERE CommentID = '$commentID[0]'";
然后把它打印出来
while($row = mssql_fetch_row($commentQuery)){
echo "<td> $row[0] $row[1] $row[2]<br><br></td>";
}
尝试合并两个查询-
$query = "SELECT COMMENTS.UserId, COMMENT.Rating, COMMENT.Comment,
COMMENT_RECIPE.commentid
FROM COMMENT INNER JOIN COMMENT_RECIPE ON
COMMENT.CommentID = COMMENT_RECIPE.commentid
WHERE COMMENT_RECIPE.RecipeID = '$recipeID[0]'
";
$execute = mssql_query($query, $connection);
echo "<table>";
echo "<tr>
<th>User Id</th>
<th>Rating</th>
<th>Comments</th>
</tr>";
while($row = mssql_fetch_row($execute))
{
echo "<tr>
<td>$row[0]</td>
<td>$row[1]</td>
<td>$row[2]</td>
</tr>";
}
echo "</table>";
看起来您真的应该将两个查询合并到一个查询中。它是只显示一条注释,还是显示多条相同的注释?我不确定数据库是如何设置的,但我认为CommentID实际上是每个注释的唯一ID。如果是这样的话,在您的第一次查询中,您只会得到一个CommentID,因为您只需将返回的第一个CommentID分配给$CommentID,而不是在结果中循环,然后查询该结果当然只会返回一行。它只显示第一个注释,我想我需要在某个地方进行while循环,我是否必须将$commentID放入循环中?我认为您应该这样做,然后遍历整个结果集:选择UserID、Rating、Comment FROM COMMENTS internal JOIN Comment_RECIPE ON COMMENTS.commentID=Comment_RECIPE.commentID,其中RecipeID=“$RecipeID[0]”,而$row=mssql_fetch_row$execute{echo$row['UserId']$row['Rating']$row['Comment'];}完全中断!!现在它有了所有的开始和结束标记。即使我尝试回显静态输出,它也会中断,如果我将循环留空,它至少会加载页面