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

Tabela mysql

Object Storage Arubacloud
0 głosów
149 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ź 311 wizyt
pytanie zadane 30 kwietnia 2020 w Sieci komputerowe, internet przez Damian12345 Bywalec (2,940 p.)
+1 głos
1 odpowiedź 258 wizyt
pytanie zadane 4 marca 2021 w SQL, bazy danych przez Mateusz Wydra Nowicjusz (240 p.)
0 głosów
1 odpowiedź 386 wizyt
pytanie zadane 18 sierpnia 2020 w SQL, bazy danych przez StressedOut Nowicjusz (210 p.)

92,563 zapytań

141,413 odpowiedzi

319,590 komentarzy

61,948 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...