2013-02-03 59 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

排序,感謝ü,我已經更新這對我的第二個方法上面的問題,但仍然得到畫廊名稱的重複。 –