Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Łączenie tabel
Croos22
post
Post #1





Grupa: Zarejestrowani
Postów: 316
Pomógł: 4
Dołączył: 22.03.2010

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


Witam.

Cytat
users |
user_id | user_name | user_pass | user_pass_short
1 admin admin2424 admin2424
2 admin2424 admin admin


-------------------------------------------------

dane |
id | wiek | gg | skype
1 20 (nr) (nr)
2 25 (nr) (nr)



Mam takie tabele przykładowo i chciałbym sie dowiedzieć w jaki sposób trzymać dane użytkowników
aby np. admin z numerem id 1 miał swoję dane w tabeli dane też pod id 1. Wydaje mi się, że gdy aktualizuje
je należało by połączyć tabele w jednym zapytaniu i przy wyciąganiu z bazy uczynić tak samo. A w rzeczywistości
Jak najlepiej by to wyglądało i działało?

Ten post edytował Croos22 11.11.2010, 20:51:35
Go to the top of the page
+Quote Post
pablo_83
post
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


proponuje użycie kluczy obcych.

pierwsza tabela:
id_user (klucz główny);
user_pass
user_log
itd...

druga tabela:
id_dane (klucz główny);
imie;
nazwisko;
tel;
...
id_user (klucz obcy - powiązany z kluczem głównym pierwszej tabeli);

w tym przypadku dany user ma ma swoje unikatowe dane poprzez klucz obcy id_user.

jak będziesz chciał wyciągnąć rekordy z tabel to robisz zapytanie join i dzięki kluczowi obcemu wyciągasz dane z drugiej tabeli tylko dla usera który cię interesuje
Go to the top of the page
+Quote Post
Croos22
post
Post #3





Grupa: Zarejestrowani
Postów: 316
Pomógł: 4
Dołączył: 22.03.2010

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


O takie coś chodzi?

Kluczem by było user_id w tabeli users i id w tabeli dane.
  1. SELECT users.user_id,users.name FROM `users`,dane WHERE users.users_id=dane.id = "{$user_id}"


Ten post edytował Croos22 14.11.2010, 08:49:37
Go to the top of the page
+Quote Post
Ulysess
post
Post #4





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


przecież nie trzeba używać kluczy obcych żeby skorzystać z JOIN , LEFT JOINa
ja bym proponował 2 metody
1 przy rejestracji wykonuje się zapytanie które dodaje ID danego usera do różnych tabel
2 User wchodzi na stronę a.php wtedy wykonuje się zapytanie które sprawdza czy w tabeli a są danego tego usera ,jeśli nie to dodaje dane.

ja osobiście korzystam z 1 opcji ale wiem że jest takie niebezpieczeństwo że jeśli przy rejestracji coś pójdzie nie tak user może mieć dane tylko w części tabel w tedy będzie psikus...
Go to the top of the page
+Quote Post
Croos22
post
Post #5





Grupa: Zarejestrowani
Postów: 316
Pomógł: 4
Dołączył: 22.03.2010

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


A mógłbyś podać jakiś przykład bo nie łapie za bardzo?

Ten post edytował Croos22 14.11.2010, 10:15:18
Go to the top of the page
+Quote Post
Ulysess
post
Post #6





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

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


skoro znasz podstawy php to nie powinno być dla Ciebie problemem napisanie (IMG:style_emoticons/default/smile.gif) przy rejestracji dodajesz dane jakiegoś usera do głównej tabeli następnie np dzięki jego loginowi pobierzesz jego ID następnie dajesz kolejne INSERTy którymi dodajesz do innych tabel dane tego USERa wstawiając w WHERE id_user = id pobrane z głównej tabeli. to była 1 opcja

2
przy rejestracji dajesz tylko INSERTa do głównej tabeli

a gdy już user zaloguje się i buszuje po Twojej stronie i wejdzie w zakładkę np ABC to wtedy dajesz selecta który sprawdza czy w danej tabeli jest już takie id jeśli tak to żadna akcja nie następuje jeśli nie dajesz INSERTa i tyle

tak jak mówiłem są plusy i minusy , uważam że ta druga opcja na stronach gdzie jest dużo odświeżeń nie zdaje roli ale mogę się mylić bo mam stosunkowo małą wiedzę na temat mysql/php
Go to the top of the page
+Quote Post

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: 18.12.2025 - 20:48