• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tabela mysql

0 głosów
264 wizyt
pytanie zadane 18 lutego 2019 w SQL, bazy danych przez veryape Użytkownik (580 p.)

Mam tabelę kapitan, w której kapitan ma swoje id ustawione jako klucz podstawowy. Oraz tabelę zawodnicy, którzy mają id ustawione jako klucz podstawowy do auto inkrementacji (ponieważ mam skrypt, który sprawdza czy dane id istnieje, jeżeli nie to dodaje zawodnika do bazy, jeżeli istnieje takie id to updatuje zawodnika) oraz w tej tabeli jest rekord idkapitana, czyli do każdego zawodnika przypisuję id jego kapitana i teraz nie mam pojęcia w jaki sposób wyświetlić kapitana wraz z jego zawodnikami, w jednym ciągu (coś na zasadzie tabeli, jedna drużyna z całym składem to jeden rekord na stronie)

SELECT rejestracjacs.imiecs, rejestracjacs.nazwiskocs, zawodnicycs.izcsz FROM rejestracjacs, zawodnicycs WHERE rejestracjacs.id=zawodnicycs.numeridkapitana

w tym momencie na stronie nie wyświetla mi się nic (wyświetlam pętlą while na podstawie fetch_assoc), gdy zmienię, że rejestracja.nazwadruzyny = zawodnicy.nazwadruzyny to wyświetlają mi się rekordy, ale ucina zawsze jednego zawodnika oraz pętla wypisuje mi tak
KAPITAN

ZAWODNIK2

KAPITAN

ZAWODNIK3

Powtarza się nazwa kapitana. Nie wiem czy błąd leży po stronie samej bazy danych, że jest źle zaprojektowana, czy zapytań SQL.

1 odpowiedź

0 głosów
odpowiedź 18 lutego 2019 przez Greeenone Pasjonat (16,100 p.)

Do tego musisz użyć trzeciej tabeli "pivot" (przestawna) która zawiera informacje dot. kapitana i zawodnika.

ID Kapitana | ID zawodnika

Następnie robisz zapytanie które pobierze id wszystkich zawodników którzy mają przypisane id kapitana.

Tak to wygląda mniej więcej

komentarz 18 lutego 2019 przez veryape Użytkownik (580 p.)
Czyli jeżeli dobrze rozumiem to tabele zostawić tak jak są,  a w trzeciej zrobić coś w stylu,  ze gdy dodaje zawodnika to insertuje do jednej kolumny podczas dodawania zawodnika id jego kapitana,  a do drugiej id zawodnika,  i wtedy mam np

Idkapitan   id zawodnik

1               2

1               7

1               12

I łącze tabele relacjami wewnętrznymi?

Podobne pytania

0 głosów
1 odpowiedź 568 wizyt
pytanie zadane 30 kwietnia 2020 w Sieci komputerowe, internet przez Damian12345 Bywalec (2,940 p.)
+1 głos
1 odpowiedź 308 wizyt
pytanie zadane 4 marca 2021 w SQL, bazy danych przez Mateusz Wydra Nowicjusz (240 p.)
0 głosów
1 odpowiedź 513 wizyt
pytanie zadane 18 sierpnia 2020 w SQL, bazy danych przez StressedOut Nowicjusz (210 p.)

93,426 zapytań

142,421 odpowiedzi

322,647 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...