Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Baza meczów piłkarskich
Gretzky
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 6.09.2011

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


Witam.

Mój problem polega tak:
Mam tabele bazy danych zatytułowaną mecz
w niej kolmny: id, id_gospodarze, id_goście, gole_goście, gole_gospodarze, sklad_gospodarze, sklad_goscie

chodzi mi przede wszystkim o tabele sklad_gospodarze i sklad_goscie
Chcę zrobić inną tabelę która by zsumowywała występy zawodników w poszczególnych meczach, wyświetlała w jakich meczach zagrali, dlatego chcę zrobić tabelę zawodnicywystepy no i właśnie...

Jak zrobić aby dla poszczególnego gracza do tabeli z występami brało pod uwagę tylko te mecze w których zagrał?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kpt_lucek
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

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


Propozycja którą tłumaczyłem

4 tabele
  1. CREATE TABLE `match` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `team_A` int(11) NOT NULL,
  4. `team_B` int(11) NOT NULL,
  5. `goals_A` int(11) NOT NULL,
  6. `goals_B` int(11) NOT NULL,
  7. `is_done` tinyint(1) DEFAULT NULL,
  8. PRIMARY KEY (`id`),
  9. KEY `fk_match_team1_idx` (`team_A`),
  10. KEY `fk_match_team2_idx` (`team_B`),
  11. CONSTRAINT `fk_match_team1` FOREIGN KEY (`team_A`) REFERENCES `team` (`idt`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  12. CONSTRAINT `fk_match_team2` FOREIGN KEY (`team_B`) REFERENCES `team` (`idt`) ON DELETE NO ACTION ON UPDATE NO ACTION
  13. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8


  1. CREATE TABLE `player` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(45) NOT NULL,
  4. `surname` varchar(45) NOT NULL,
  5. `team_idt` int(11) NOT NULL,
  6. PRIMARY KEY (`id`),
  7. KEY `fk_player_team_idx` (`team_idt`),
  8. CONSTRAINT `fk_player_team` FOREIGN KEY (`team_idt`) REFERENCES `team` (`idt`) ON DELETE NO ACTION ON UPDATE NO ACTION
  9. ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8


  1.  
  2. CREATE TABLE `team` (
  3. `idt` int(11) NOT NULL AUTO_INCREMENT,
  4. `name` varchar(255) NOT NULL,
  5. PRIMARY KEY (`idt`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

  1. CREATE TABLE `team_has_player` (
  2. `team_idt` int(11) NOT NULL,
  3. `player_id` int(11) NOT NULL,
  4. `match_id` int(11) NOT NULL,
  5. PRIMARY KEY (`team_idt`,`player_id`),
  6. KEY `fk_team_has_player_player1_idx` (`player_id`),
  7. KEY `fk_team_has_player_team1_idx` (`team_idt`),
  8. KEY `fk_team_has_player_match1_idx` (`match_id`),
  9. CONSTRAINT `fk_team_has_player_team1` FOREIGN KEY (`team_idt`) REFERENCES `team` (`idt`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  10. CONSTRAINT `fk_team_has_player_player1` FOREIGN KEY (`player_id`) REFERENCES `player` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  11. CONSTRAINT `fk_team_has_player_match1` FOREIGN KEY (`match_id`) REFERENCES `match` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8


Struktura, pod warunkiem odpowiedniego umieszczania danych pozwala na wyciągnięcie wszystkiego tak jak chciałeś. Wykonane tak na szybkości, czegoś dla Ciebie ważnego na pewno brakuje, ale funkcjonuje i zdaje się działać poprawnie.

Zapewne są lepsze metody.

~kpt_lucek
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: 9.10.2025 - 18:24