2013-02-03 60 views
1

我想选择所有的photoes避免画廊名称由匹配与组的所有行的数据使用GROUP BY,我检索所有的画廊名字repetations.But但我得到的只涉及到每一个画廊的照片。 becoz组通过只显示一行。显示在使用GROUP BY

我怎么能显示所有photoes与出库名称的repitation?任何替代办法?.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,"; 
    } 

和第二替代方法可以像这里,但我仍然得到画廊的名字repitation

$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

?最后一个?第一个? –

+0

您的问题有点不清楚 - 您是否试图以您的图库名称排序? – sgeddes

+0

@ sgeddes,没有我的分组画廊名称和获取所有的相关的图片 –

回答

0

如果你正在寻找的所有照片进行特定的画廊,没有使用一组条款WHERE通过这样的:

SELECT * 
    from photo 
    where gallery_name = '$gallery_name'; 
你要哪张照片选择每个分组`gallery_name`
+0

,我也这样做了,就像在我更新的问题中看到的一样,但仍然获得了画廊名称的声誉。 –

+0

@AanaSaeed这是因为你在'while'循环中打印它,将它打印在它外面。 –

0

试试这个::

SELECT gallery_name, p_name from photo group by gallery_name, p_name 
0

我想你可能会希望使用DISTINCTORDER BY关键字:

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

祝你好运。

+0

谢谢你,但我不想重复gellery的名字 –

+0

然后,这将涉及到改变你的php代码:)添加逻辑来检查curr = prev并相应地显示... – sgeddes

1

使用'ORDER BY'代替"GROUP BY"

SELECT * 
... 
GROUP BY ... 

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

+0

不,我是分组画廊名称和提取所有相关pictures.order通过只会图片相应 –

+0

排序,感谢ü,我已经更新这对我的第二个方法上面的问题,但仍然得到画廊名称的重复。 –