首先,我会粘贴我的代码,而不是解释。
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显示相同的图像。
答案 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但没有指定照片文件的行?也许你在查询一张空桌子。