PHP查询不返回所有结果
问题描述:
我试图显示用户所做的日期,相册和评论表。日期和评论显示没有问题,但目前我的查询只显示列表中的第一个CD标题。PHP查询不返回所有结果
表'cdreview'包含'CDID','userID','reviewDate','reviewText'列。 表'cd'有'CDTitle',所以我用一个自然的JOIN通过CDID连接了2个表,但是我无法显示正确的CDTitle。
任何帮助将非常感激。
<?php
require_once 'database_conn.php';
$userid = $_SESSION['userSession'];
$sql = "SELECT * FROM cdreview JOIN cd WHERE '$userid'=cdreview.userID ORDER BY reviewDate ASC";
$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$row = mysqli_fetch_assoc($result);
$date = $row['reviewDate'];
$album = $row['CDTitle'];
$review = $row['reviewText'];
$cdid = $row['CDID'];
?>
<tr align='center'>
<td><?php echo $date;?></td>
<td><?php echo $album;?></td>
<td><?php echo $review;?></td>
<td><a href="edit_review.php?id=<?php echo $cdid;?>">Edit</td>
<td><a href="album.php?id=<?php echo $cdid;?>">Delete</td>
</tr>
</table>
答
你必须通过结果迭代:
while ($row = mysqli_fetch_assoc($result)){
$date = $row['reviewDate'];
$album = $row['CDTitle'];
$review = $row['reviewText'];
$cdid = $row['CDID'];
// print stuff
}
答
mysqli_fetch_assoc
返回一个result set。
你必须遍历这个结果集并分别处理每个结果。
while ($row = mysqli_fetch_assoc($result)) {
$date = $row['reviewDate'];
$album = $row['CDTitle'];
$review = $row['reviewText'];
$cdid = $row['CDID'];
?>
<tr align='center'>
<td><?php echo $date; ?></td>
<td><?php echo $album; ?></td>
<td><?php echo $review; ?></td>
<td><a href="edit_review.php?id=<?php echo $cdid; ?>">Edit</td>
<td><a href="album.php?id=<?php echo $cdid; ?>">Delete</td>
</tr>
<?php
}
+0
其实'mysqli_fetch_assoc'不返回结果集。而是“*结果集中获取的行*”。 – PeeHaa
你只从结果集中读取一行:'$行= mysqli_fetch_assoc($结果);' – jeroen
您的查询似乎倒退到我 – Option