Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Baza meczów piłkarskich
Forum PHP.pl > Forum > Przedszkole
Gretzky
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ł?

kpt_lucek
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.