2017-08-02 39 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>'; 
}