我有一个系统,我从我的数据库中获取图像,但是当它这样做时,有3倍的相同图像。
我尝试过不同的方式,DISTINCT等,但我不知道如何解决这个问题。
这是我的查询代码:
<?php
$id = $_GET['id'];
$query = "SELECT DISTINCT * FROM billeder INNER JOIN album ON fk_album_ID = $id";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_assoc($result))
{
$thumb_src = 'billeder/thumb_'.$row['billeder_sti'];
$full_src = 'billeder/'.$row['billeder_sti'];
echo "
<div class='ikon'>
<a href='$full_src'>
<img src='$thumb_src' alt='' />
</a>
</div>
";
}
?>
希望有人可以帮我解决这个问题:)
答案 0 :(得分:1)
如果无法查看您的表格结构,我将无法给出确切的答案,但可能的原因是您的INNER JOIN
设置不正确。
SELECT DISTINCT *
FROM billeder
INNER JOIN album
ON (billeder.fk_album_ID = album.pk_album_ID)
WHERE
billeder.fk_album_ID = $id
上述内容将是JOIN
表格的正确方法,并使用WHERE
子句来限制收到的日期。
答案 1 :(得分:0)
JOIN
必须与两个表列一起使用。见例:
SELECT * FROM tableA a INNER JOIN tableB b ON a.id = b.a_id;
你想要做的是这样的:
"SELECT DISTINCT * FROM billeder INNER JOIN album ON
billeder.fk_album_ID = album.album_id WHERE billeder.id = $id"
您不应将参数传递给JOIN
。必须在WHERE
子句上使用参数。