检查变量是否为空

时间:2013-10-07 23:59:19

标签: php

首先,我会粘贴我的代码,而不是解释。

while($row = mysqli_fetch_assoc($result)) {
    $id=$row['id'];
    $username=$row['username'];
    $email=$row['email'];
    $firstname=$row['firstname'];
    $lastname=$row['lastname'];
    $motto=$row['motto'];
    $bio=$row['bio'];
$result4 = mysqli_query($link, "SELECT * FROM photo where id='$id'");
while($row4 = mysqli_fetch_assoc($result4))
{
$image=$row4['filename'];
$src = (empty($image)) ? "upload/your-photo.jpg" : "site_images/$id/$image";
}

正如您所知,问题与图像有关。我认为问题在于它选择*来自照片,其中id ='$ id',因为这是一个while循环,如果它是空的,就像它在$ src中说的那样,它只是移动到下一个人的行。

我想知道如何使这项工作成为可能?现在它只是在显示正确的图像时为每个id显示相同的图像。

2 个答案:

答案 0 :(得分:3)

您应该只有一个带有联接的查询,以加入照片表。

答案 1 :(得分:0)

我会尝试打破你有内循环的条件:

$result4 = mysqli_query($link, "SELECT * FROM photo where id='$id'");
while($row4 = mysqli_fetch_assoc($result4))
{
  $image=$row4['filename'];
  $src = "upload/your-photo.jpg";
  if(!empty($image)) {
     $src = "site_images/$id/$image";
  }
}

如果不起作用,请尝试使用:

strlen 

并检查它是否等于0

此外,在您的数据库中,您的照片表是否包含带ID但没有指定照片文件的行?也许你在查询一张空桌子。