Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Join i tabela przejściowa, Pytanie od raczkującego nowicjusza.
bp.sushi
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 7.05.2012

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


Witam.
Przeszukałem forum i internet w poszukiwaniu pomocy, ale albo nie udało mi się trafić na odpowiednie wyjaśnienie, albo po prostu nie potrafię go zrozumieć.Jestem bardzo początkujący tak w tematyce php jak i MySql więc z góry proszę o wyrozumiałość (IMG:style_emoticons/default/smile.gif)

Najbardziej zbliżonym problemem do mojego jaki odnalazłem a forum jest ten wątek:
Temat: Skladowanie danych w tabeli many to many
Niestety nie bardzo mogę się doszukać odpowiedzi jakiej poszukuję.

Przechodząc do meritum:

Mam dwie tabele:
Operatorzy:

| id | nick | imie | avatar
-------------------------------------------------
| 1 | sushi | bartek | stuff/sushiAv.jpg
-------------------------------------------------
| 2 | lolek | zbigniew | stuff/lolekAv.jpg

itd.
Oraz tabele Misje która przechowuje nazwę misji i ścieżkę do ikonki.

| id | nazwa | ikona
---------------------------------------
| 1 | misja1 | stuff/misja1.jpg
---------------------------------------
| 2 | misja2 | stuff/misja2.jpg
---------------------------------------
| 3 | misja3 | stuff/misja3.jpg
---------------------------------------
| 4 | misja4 | stuff/misja4.jpg
---------------------------------------
itd

Zarówno operatorów jak i misje przybywa i może ich dodawać admin z panelu admina. Z tym nie mam problemów.
Nie wiem natomiast jak admin mógł by przypisywać dane misje do danego operatora + jak wyświetlić je na stronie?

Z tego co udało mi się doczytać powinienem mieć trzecią tabelę w której połączył bym rekordy ale nie bardzo wiem jak by to miało wyglądać, przy założeniu, że jeden operator może mieć np przypisane trzy różne misje a drugi dwie (w zależności od tego w których brał udział)

Na mój chłopski rozum trzecia tabela powinna wyglądać mniej więcej tak (zakładając że operator Sushi brał udział w misji1, misji2 i misji4, a operator lolek w misji2 i misji3):

| id | nick | nazwa | ikona
---------------------------------------
| 1 | sushi | misja1 | stuff/misja1.jpg
---------------------------------------
| 2 | sushi | misja2 | stuff/misja2.jpg
---------------------------------------
| 3 | sushi | misja4 | stuff/misja4.jpg
---------------------------------------
| 4 | lolek | misja2 | stuff/misja2.jpg
---------------------------------------
| 5 | lolek | misja3 | stuff/misja3.jpg
---------------------------------------

Tyle że zakładając że mam 20 operatorów, a każdy brał udział minimum w 4 misjach w różnych kombinacjach i liczba ta nadal się powiększa, miał bym przeogromną tabelę. z rozsianymi po całej długości nickami.

Tabela w stylu:

| id | nick | nazwa | ikona | nazwa | ikona | nazwa | ikona

też raczej nie wchodzi w grę bo było by mnóstwo pustych pól i nawet nie wyobrażam sobie jak dodawać misje dla poszczególnych nicków (ale może się mylę..).
Poza tym, podczas dodawania/edycji danych z panelu admina za każdym razem musiały by być tworzone rekordy w dwóch różnych bazach.

Koniec końców stronie chcę osiągnać nastepujący wynik:

Zdjęcie Avatara
Nick: Sushi
Imię: Bartek
Brał udział w misjach: misja1, misja2, misja4

Czytałem o tabelach relacyjnych w nadziei że doznam oświecenia, ale chyba bez łopatologicznego wyjaśnienia nie ejstem w stanie tego zrozumieć.

Ten post edytował bp.sushi 7.05.2012, 16:28:26
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: 28.09.2025 - 12:30