Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak uniknąć zapytania w pętli?
tehaha
post
Post #1





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Witam,
z bazy pobieram listę artykułów, obok każdego artykułu będzie jego średnia ocena(wszystkie oceny dla artykuły/ ilość ocen), oceny oczywiście są w oddzielnej tabeli. Najprostszym rozwiązaniem było stworzenie zapytania w pętli czyli dla każdego pobranego artykuły dać oddzielne zapytanie na wyliczenie tej średniej oceny, ale w takim przypadku dla listy 100 artykułów strona wyśle ponad 100 zapytań.....

Ma ktoś pomysł jak się do tego zabrać? nie proszę o gotowca tylko o jakieś wskazówki

Pozdrawiam i dziękuję za ewentualną pomoc:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A JOIN Ci nie wystarczy?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tehaha
post
Post #3





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


no a mogę zrobić takiego joina żeby dla każdego rekordu z jednej tabeli pobrać sumę i liczbę rekordów z drugiej tabeli przypisaną do rekordu z pierwszej tabeli?
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat(tehaha @ 11.03.2010, 20:58:04 ) *
no a mogę zrobić takiego joina żeby dla każdego rekordu z jednej tabeli pobrać sumę i liczbę rekordów z drugiej tabeli przypisaną do rekordu z pierwszej tabeli?

Jesli sa jakiekolwiek relacje np poprzed ID art'a to tak.
Zreszta pokaz jak wygladaja tabele bo nikt zgadywac nie bedzie i kod ktory do tej pory masz.


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
tehaha
post
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


pytałem tylko o takie teoretyczne podejście do sprawy ale ok. kod jakim pobieram dane do utworzenia listy:
  1. $sql = sprintf("SELECT a.game_id, a.game_title, b.game_desc, b.game_platform, b.game_premier, b.game_premier_pl,c.image_id, d.producer_label, e.platform_label FROM admin_games a JOIN admin_game_details b ON a.game_id = b.game_id $platform_sort LEFT JOIN admin_game_covers c ON a.game_id = c.game_id AND c.image_platform = b.game_platform LEFT JOIN admin_producers d ON a.game_producer = d.producer_id LEFT JOIN admin_platforms e ON b.game_platform = e.platform_id $where $filter $order $order_dir LIMIT %s, %s",
  2. mysql_real_escape_string($limit_start),
  3. );


następnie w pętli takim kodem pobieram średnią ocenę dla każdej gry :
  1. $sql_ra = sprintf("SELECT sum(a.material_game_rank) as rank_sum, count(a.material_game_rank) as rank_count FROM admin_materials a JOIN admin_material_game_assoc b ON a.material_id = b.material_id AND b.game_id = '%s' WHERE a.material_platform = '%s' AND a.material_type = '2'", mysql_real_escape_string($game_id), mysql_real_escape_string($platform_id));


więc w rezultacie chodziło by o scalenie tych 2 zapytań w jedno
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: 22.08.2025 - 07:25