Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Zapytanie zwraca 1 rekord, mimo że powinien 2.
pawel.ad
post 10.03.2010, 21:10:48
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 8.03.2010
Skąd: Zielona Góra

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


Witam.

Mam bazę danych gdzie zapisuje statystyki ze szkolnej ligi koszykarskiej. Wygląda to mniej więcej tak(w końcowej wersji nie ma team.leader_id i player.dob):



Stworzone są 2 rekordy w game_scores gdzie player_id jest takie same i wynosi 1. Chce wyświetlić statystyki gracza we wszystkich meczach, i stworzyłem takie zapytanie:
  1. SELECT `teams`.`name` AS t_name, `game_scores`.`PTS` AS gs_PTS, `game_scores`.`AST` AS gs_AST, `game_scores`.`REB` AS gs_REB, `game_scores`.`ST` AS gs_ST, `game_scores`.`BS` AS gs_BS, `game_scores`.`BA` AS gs_BA, `game_scores`.`2PM` AS gs_2PM, `game_scores`.`2PA` AS gs_2PA, `game_scores`.`3PM` AS gs_3PM, `game_scores`.`3PA` AS gs_3PA, `game_scores`.`FTM` AS gs_FTM, `game_scores`.`FTA` AS gs_FTA, AVG(`game_scores`.`PTS`) AS avg_PTS, AVG(`game_scores`.`REB`) AS avg_REB, AVG(`game_scores`.`AST`) AS avg_AST, AVG(`game_scores`.`ST`) AS avg_ST, AVG(`game_scores`.`BS`) AS avg_BS, AVG(`game_scores`.`BA`) AS avg_BA, SUM(`game_scores`.`2PM`) AS sum_2PM, SUM(`game_scores`.`2PA`) AS sum_2PA, SUM(`game_scores`.`3PM`) AS sum_3PM, SUM(`game_scores`.`3PA`) AS sum_3PA, SUM(`game_scores`.`FTM`) AS sum_FTM, SUM(`game_scores`.`FTA`) AS sum_FTA, `games`.`game_date` AS g_date, (SELECT `teams`.`name` FROM `teams` WHERE `teams`.`id` = `games`.`host_id`) AS hostname, (SELECT `teams`.`name` FROM `teams` WHERE `teams`.`id` = `games`.`guest_id`) AS guestname
  2. FROM `games`, `players`
  3. INNER JOIN `game_scores` ON `players`.`id` = `game_scores`.`player_id`
  4. INNER JOIN `teams` ON `players`.`team_id` = `teams`.`id`
  5. WHERE `players`.`id` = '$id'
  6. ORDER BY `games`.`game_date`


$id jest pobierane metodą $_GET i wynosi 1.

Co robię źle, ponieważ wyświetlony zostaje wynik tylko z pierwszego meczu?
Siedzę nad tym już ponad 2h zmieniając kod, i próbując żeby wyszło, ale nie udaje mi się...

EDIT:
BTW. AVG(`game_scores`.`PTS`) zwraca średnią punktową z dwóch meczy... ;/

Ten post edytował pawel.ad 10.03.2010, 21:13:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post 10.03.2010, 21:18:16
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no a pokaz kod, ktorym pobierasz te dane


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pawel.ad
post 10.03.2010, 21:22:05
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 8.03.2010
Skąd: Zielona Góra

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


Na razie próbuję to w phpMyAdmin zrobić jako z "Zapytanie przez przykład". Jeżeli tam wychodzi tylko jeden rekord, to przy pobieraniu danych tym bardziej...(poprawcie mnie jeśli się mylę)

A w php to:

http://wklej.org/id/294180/


EDIT:
Tyle czasu zmarnowane przez własną głupotę...
Zamiast GROUP BY, dałem ORDER BY... i tyle... wszystko inne dobrze zrobiłem...
Można wrzucić do kosza;

Ten post edytował pawel.ad 10.03.2010, 21:57:48
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:31