1

ギャラリー名の繰り返しを避けてすべての写真を選択したいのですが、group by を使用すると、すべてのギャラリー名を取得できますが、すべてのギャラリーに関連する写真は 1 つしか取得できません。

ギャラリー名を繰り返さずにすべての写真を表示するにはどうすればよいですか?別の方法はありますか?.Plz help.

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

2番目の代替アプローチは次のようになりますが、ギャラリー名の繰り返しが発生します

 $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 に答える