2017-08-02 37 views
0

對不起,我的「新手」問題,但我有一個簡單的pdo查詢問題。我所擁有的是從兩個表中查詢並基於user_id顯示他所有上傳的圖像。下面是代碼簡單的查詢返回結果在ELSE塊中,而不是在IF

$sql = "SELECT * FROM user_images  
     LEFT JOIN users 
     ON user_images.user_id = users.id 
     WHERE user_images.user_id=:user_id"; 
$stmt = $db_con->prepare($sql); 
$stmt->bindParam(":user_id", $_SESSION['user']['id']);  
$stmt->execute(); 
$user_photos = $stmt->fetch(); 

if (is_object($user_photos) && !empty($user_photos) && $user_photos->num_rows > 0) { 
    while ($row = $user_photos->fetch_assoc()) { ?> 
      <img src="uploads/<?php echo $row->images_name; ?>"> 
    <?php }} else { ?> 
    <li style="text-align: center"> 
      No Images Found! 
    </li> 
<?php } ?> 

這裏發生的事情是,在IF塊圖像不顯示。相反,如果我在ELSE阻止var_dump($row->images_name);塊,圖像可見。

+0

用途: - '如果($ user_photos-> NUM_ROWS> 0){'only.That就足夠了 –

+0

這回'注意事項:試圖讓非object' – Peter

+0

爲什麼有這麼多downvotes的財產?請解釋,因爲我不是像你這樣的專家。 – Peter

回答

3
$sql = "SELECT * FROM user_images  
     LEFT JOIN users 
     ON user_images.user_id = users.id 
     WHERE user_images.user_id = ?"; 
$stmt = $db_con->prepare($sql);  
if ($stmt->execute(array($_SESSION['user']['id']))) { 
    while ($row = $stmt->fetch()) { 
     echo '<img src="uploads/', $row['images_name'], '">'; 
    } 
} 
if (empty($row)) { ?> 
    <li style="text-align: center"> 
      No Images Found! 
    </li> 
<?php } ?> 
+0

謝謝,它的工作很棒強硬我仍然不知道什麼是問題 – Peter

+1

你得到'$ stmt-> fetch();'的返回,並使用另一個函數來獲取結果,之後發生的任何事情都必須很有趣。 – ksjohn

2

另一種使用php函數的方法count()

<?php 
$sql = "SELECT * FROM user_images  
     LEFT JOIN users 
     ON user_images.user_id = users.id 
     WHERE user_images.user_id=:user_id"; 
$stmt = $db_con->prepare($sql); 
$stmt->bindParam(":user_id", $_SESSION['user']['id']);  
$stmt->execute(); 
$user_photos = $stmt->fetchAll(); 

if (count($user_photos) > 0) {   
    foreach ($user_photos as $row) { 
     echo '<img src="uploads/'.$row['images_name'].'">'; 
    } 
} else { 
     echo '<li style="text-align: center">No Images Found!</li>'; 
}