Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pokoje problem
Forum PHP.pl > Forum > Przedszkole
GoodStuff
Cześć,

Otóż potrzebuję nakierowania jakie zapytania wykonać żeby to miało ręce i nogi .

Mianowicie stworzyłem nową tabelę (pokoje) w niej:
  1. `id`, `nazwa`, `gracz1`, `gracz2`, `gracz3`, `gracz4`, `gracz5`, `ts`, `tekst`


Mianowicie jeden z graczy tworzy pokój jednym buttonem wpisując nazwę pokoju, ts
do bazy dodaje się jego id jako gracza1.

Teraz naradza się problem kolejny gracz chciał by się dodać buttonem i teraz jak powinno wyglądać insert by każdy kolejny zapisywał się na gracz2 , gracz 3, gracz 4, gracz 5. I jakie zapytanie, gdy jest już 5 graczy i nikt inny nie mógł się zapisywać?
nospor
Zacznijmy od tego, ze masz zlą strukture bazy. Powinno byc:

tabela pokoje:
ID
NAZWA

tabela pokoj_gracz
ID_POKOJU
ID_GRACZA
GoodStuff
Hmm a dlaczego w ten sposób?
nospor
GDyż tak się pisze poprawnie i zgodnie ze sztuką.
GoodStuff
Rozumiem, dobrze co do tabeli pokój_gracza w jaki sposób do ID_GRACZA dopisywać graczy? tak żeby było wiadomo który to który. I jak połączyć te 2 bazy razem ?
Tuminure
Cytat
tabela pokoje:
ID
NAZWA

tabela pokoj_gracz
ID_POKOJU
ID_GRACZA

I oczywiście jeszcze tabelę z graczami

tabela gracz:
ID
NAZWA

Łącznie powinieneś mieć 3 tabele - jedna z opisem pokoi, druga z opisem graczy i trzecia określająca powiązania między pokojami, a użytkownikami.

Cytat
Hmm a dlaczego w ten sposób?

Wady Twojego rozwiązania:
-Zakłada, że zawsze jest 5 graczy (nie więcej, ewentualnie mniej),
-Przeszukanie czy gracz X jest przypisany do konkretnego pokoju wymaga przeszukania 5 kolumn zamiast jednej,
-Możesz umieścić jednego gracza kilka razy w tym samym pokoju.
nospor
Cytat
jaki sposób do ID_GRACZA dopisywać graczy
Nie, w ID_GRACZA ma byc tylko jeden gracz. Jeden gracz jeden rekord. Jesli w pokoju 6 masz gracza 2 i 3 to w tabeli mają powstaw dwa rekordy
6,2
6,3

Cytat
. I jak połączyć te 2 bazy razem ?
To nie sa bazy... to są tabele. Rozróżniaj tak podstawowe pojecia.
GoodStuff
Dobra stworzyłem 2 tabele
Kod
tabela pokoje:
ID
NAZWA

tabela pokoj_gracz
ID_POKOJU
ID_GRACZA

Co chce osiągnąć , Użytkownik[a] tworzy pokój który jest zapisany w tabeli pokoje ID i NAZWA POKOJU, od razu dodawany jest rekord do tabeli pokoj_gracz z id_pokoju i id_gracz .. Teraz chciałbym żeby maksymalnie 5 użytkowników mogło dołączyć do jednego pokoju jak mogę coś takiego wykonać?
nospor
Gdy dochodzi kolejny gracz to sprawdzasz ile jest rekordow w tabeli pokoj_gracz dla danego pokoju. Jak mniej niz 5, to dodajesz tam kolejny rekord z akutalnym graczem.
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.