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> 
+0

你只从结果集中读取一行:'$行= mysqli_fetch_assoc($结果);' – jeroen

+0

您的查询似乎倒退到我 – Option

你必须通过结果迭代:

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