Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Łączenie tabel w phpMyAdmin
soldiernr1
post 27.06.2012, 19:17:25
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 16.06.2012

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


Witam, mam tabele 1 (użytkownicy) teraz potrzebuje tabelę w której będą archiwizowane typy wybrane przez uzytkowników (mam tu na mysli TYP: 1,X lub 2 oraz wynik meczu) do tego stworzyłem tabelę2 . Nie wiem jak je połączyć w phpMyAdmin stowrzyłem do połączenia tych tabel zapytanie. Prosze o sprawdzenie i ewentualne poprawki co do tabel i zapytania oraz wskazówki jak to ogarnąć w phpMyAdmin

Tabela1:
Kod
CREATE TABLE `uzytkownicy` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT,
`nazwisko` VARCHAR( 32 ) NOT NULL ,
`nick` VARCHAR( 32 ) NOT NULL ,
`haslo` VARCHAR( 40 ) NOT NULL ,
`email` VARCHAR( 255 ) NOT NULL ,
`ip`INT ( 15 ) NOT NULL ,
PRIMARY KEY ( `id` )
);



Tabela2:
Kod
CREATE TABLE `typowanie` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`nick` VARCHAR( 32 ) NOT NULL ,
`typ` VARCHAR( 1 ) NOT NULL ,
`wynik` VARCHAR( 5 ) NOT NULL ,
`czas` INT( 5 ) NOT NULL ,
`ip`INT ( 15 ) NOT NULL ,
PRIMARY KEY ( `nick` )
);



(Jesli dobrze pamiętam, to aby powiązac dwie tabele to muszą one miec tyle samo kolumn)
Kod
SELECT a.nazwisko, a.nick , a.haslo, a.email, a.ip, b.nick, b.typ, b.wynik, b.czas, b.ip
from uzytkownicy a, typowanie b
where a.id=b.id;
Go to the top of the page
+Quote Post
peter13135
post 27.06.2012, 19:22:51
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Co to znaczy "łączyć" tabelę ? W jaki sposób i po co chcesz je łączyć ? Czemu niby mają mieć tą samą liczbę kolumn ?


--------------------
:)
Go to the top of the page
+Quote Post
kamil_lk
post 27.06.2012, 19:37:45
Post #3





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

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


Ja bym to zrobił tak:

  1. CREATE TABLE `uzytkownicy` (
  2. `id_uzytkownika` INT( 11 ) NOT NULL AUTO_INCREMENT,
  3. `nazwisko` VARCHAR( 32 ) NOT NULL ,
  4. `nick` VARCHAR( 32 ) NOT NULL ,
  5. `haslo` VARCHAR( 40 ) NOT NULL ,
  6. `email` VARCHAR( 255 ) NOT NULL ,
  7. PRIMARY KEY ( `id_uzytkownika` )
  8. );


  1. CREATE TABLE `wyniki` (
  2. `id_wyniku` INT( 11 ) NOT NULL AUTO_INCREMENT,
  3. `wygrana` INT( 1 ) ,
  4. `remis` INT( 1 ) ,
  5. `przegrana` INT( 1 ) ,
  6. PRIMARY KEY ( `id_wyniku` )
  7. );


Tabela `wyniki` posiada trzy wpisy z wartościami:

  1. 0 | 1 | 0
  2. 1 | 0 | 0
  3. 0 | 0 | 1


  1. CREATE TABLE `typy` (
  2. `id_typu` INT( 11 ) NOT NULL AUTO_INCREMENT,
  3. `id_wyniku` INT( 1 ) NOT NULL ,
  4. `id_uzytkownika` INT( 1 ) NOT NULL,
  5. PRIMARY KEY ( `id_typu` )
  6. );


Aby wybrać dane użytkownika wraz z jego typem należy użyć zapytania:
  1. SELECT u.nazwisko, u.nick, w.id_wyniku
  2. FROM uzytkownicy u, wyniki w, typy t
  3. WHERE u.id_uzytkownika=t.id_uzytkownika
  4. AND w.id_wyniku=t.id_wyniku


Następnie sprawdzasz czy id_wyniku == 1(remis), id_wyniku == 2(wygrana pierwszej drużyny), id_wyniku ==3(wygrana drugiej drużyny) i przypisujesz odpowiednią wartość podaną w nawiasie

Ten post edytował kamil_lk 27.06.2012, 19:46:58
Go to the top of the page
+Quote Post
soldiernr1
post 28.06.2012, 09:33:00
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 16.06.2012

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


Cytat
Następnie sprawdzasz czy id_wyniku == 1(remis), id_wyniku == 2(wygrana pierwszej drużyny), id_wyniku ==3(wygrana drugiej drużyny) i przypisujesz odpowiednią wartość podaną w nawiasie
Możesz mi to bardziej wyjaśnić?
Proszę jeszcze o wyjaśnienie, jak zrobić by poniższe zapytanie:
  1. SELECT u.nazwisko, u.nick, w.id_wyniku
  2. FROM uzytkownicy u, wyniki w, typy t
  3. WHERE u.id_uzytkownika=t.id_uzytkownika
  4. AND w.id_wyniku=t.id_wyniku

zostało wprowadzone do phpMyAdmin tak by wykonywało się cały czas (czyli na stałe). A może to zapytanie w formie kodu php powinienem wstawić w miejscu na stronie w którym powinny wyświetlac sie pobierane dane??

Ten post edytował soldiernr1 28.06.2012, 09:38:05
Go to the top of the page
+Quote Post
jumbo
post 1.07.2012, 22:59:32
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.06.2012

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


Cytat
Ja bym to zrobił tak:

A czy mógłbyś do całości dodać tabelę `rezultat` i stworzyć zapytanie które wyświetliłoby dodatkowo rezultat (dokładny wynik meczu) na stronie?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 4.05.2025 - 07:20