1

我想选择所有避免画廊名称重复的照片。但是使用 group by,我检索所有画廊名称,但我只得到一张与每个画廊相关的照片。becoz 组只显示一行。

如何在不重复画廊名称的情况下显示所有照片?任何替代方法?请帮助。

$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,";
        }}
4

4 回答 4

1

使用'ORDER BY'而不是"GROUP BY".

SELECT *
 ...
GROUP BY ...

是错的。组用于计数、查找最小值和最大值以及其他组操作。其余的应该取决于您的 PHP 代码。

于 2013-02-03T07:54:49.203 回答
0

试试这个::

SELECT  gallery_name, p_name   from photo group by gallery_name, p_name
于 2013-02-03T07:52:26.780 回答
0

我认为您可能希望使用DISTINCTandORDER BY关键字:

SELECT DISTINCT p_name, gallery_name
FROM Photo
ORDER BY gallery_name, p_name

祝你好运。

于 2013-02-03T07:52:40.237 回答
0

如果您正在查找特定画廊的所有图片,请使用WHERE不带 group by 的子句,如下所示:

  SELECT  *   
  from photo  
  where gallery_name  = '$gallery_name';
于 2013-02-03T08:04:16.147 回答