Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] subquery z wieloma wynikami
kielek
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 1
Dołączył: 24.02.2007

Ostrzeżenie: (0%)
-----


Witam,

Mam dwie tabele w bazie danych jedna to gallery_groups a druga to gallery_images. Wyciągam wszystko na raz w ten sposób:

  1. $query = mysql_query("SELECT * FROM gallery_groups");
  2. while($row = mysql_fetch_array($query)) {
  3.  
  4. $query2 = mysql_query("SELECT * FROM gallery_images WHERE id_group = ".$row['id_group']);
  5. while($row2 = mysql_fetch_array($query)) {
  6.  
  7. $row['image'][] = $row2;
  8.  
  9. }
  10.  
  11. $gallery[] = $row;
  12.  
  13. }


Dalej tablice przekazuje sobie do smarty i ją wyświetlam.
Teraz pytanie:
Czy da się to zrobić optymalniej? Wykorzystać tylko jedno zapytanie zamiast zapętlać selecta?
Go to the top of the page
+Quote Post
Smertius
post
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 31
Dołączył: 23.02.2009
Skąd: Sanok

Ostrzeżenie: (0%)
-----


Nie wystarczy czasem jedno zapytanie:
  1. SELECT * FROM gallery_images LEFT JOIN gallery_groups USING (id_group)


Później przechodzisz wyniki w pętli i grupujesz sobie wg uznania

Ten post edytował Smertius 21.09.2011, 17:08:38
Go to the top of the page
+Quote Post
kielek
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 1
Dołączył: 24.02.2007

Ostrzeżenie: (0%)
-----


Ok, ale jeśli będę chciał użyć LIMIT na grupę to w tym wypadku nie będę mógł tego zrobić ponieważ limitować będzie zdjęcia, a nie grupy. Chyba, że jest na to jakiś sposób?

Ten post edytował kielek 21.09.2011, 17:27:28
Go to the top of the page
+Quote Post
Smertius
post
Post #4





Grupa: Zarejestrowani
Postów: 156
Pomógł: 31
Dołączył: 23.02.2009
Skąd: Sanok

Ostrzeżenie: (0%)
-----


Jeśli będziesz chciał ustawiać LIMIT dla każdej grupy niezależnie, to niestety nie widzę innego rozwiązania jak kilka zapytań
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 05:17