我想选择所有照片,避免画廊名称重复。但是使用group by,我会检索所有图库名称,但我只获得一张与每个gallery.becoz组相关的照片,只显示一行。
如何在不重复图库名称的情况下显示所有照片?是否有替代方法?.Plz帮助。
$sql=mysqli_query($db3->connection,"SELECT * from photo group by gallery_name ");
while($row=mysqli_fetch_array($sql)){
$pic_name=$row['p_name'];
$gallery_name=$row['gallery_name'];
echo "$gallery_name>$pic_name,";
}
第二种替代方法可以像这里一样,但我仍然得到画廊名称的复制
$sql=mysqli_query($db3->connection,"SELECT gallery_name from photo group by gallery_name ");
while($row1=mysqli_fetch_array($sql1)){
$gallery_name=$row1['gallery_name'];
$sql=mysqli_query($db3->connection,"SELECT * from photo where gallery_name='$gallery_name' ");
while($row=mysqli_fetch_array($sql)){
$pic_name=$row['p_name'];
$gallery_name1=$row['gallery_name'];
echo "$gallery_name>$pic_name,";
}}
答案 0 :(得分:1)
使用'ORDER BY'
代替"GROUP BY"
。
SELECT *
...
GROUP BY ...
错了。组用于计数,查找最小值和最大值以及其他组操作。 其余的应该取决于你的PHP代码。
答案 1 :(得分:0)
试试这个::
SELECT gallery_name, p_name from photo group by gallery_name, p_name
答案 2 :(得分:0)
我认为您可能希望使用DISTINCT
和ORDER BY
关键字:
SELECT DISTINCT p_name, gallery_name
FROM Photo
ORDER BY gallery_name, p_name
祝你好运。
答案 3 :(得分:0)
如果您要查找特定图库的所有图片,请使用不带分组的WHERE
子句,如下所示:
SELECT *
from photo
where gallery_name = '$gallery_name';