2016-12-14 199 views
2

我試圖顯示用戶所做的日期,​​相冊和評論表。日期和評論顯示沒有問題,但目前我的查詢只顯示列表中的第一個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

回答

1

你必須通過結果迭代:

while ($row = mysqli_fetch_assoc($result)){ 

    $date = $row['reviewDate']; 
    $album = $row['CDTitle']; 
    $review = $row['reviewText']; 
    $cdid = $row['CDID']; 

    // print stuff 
} 
1

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