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
tehaha
post
Post #2





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

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 05:10