![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, nie wiem czy pisze dobrym watpu. Chodzi mi o baze danych w phpmyadmin. Problem polega na tym ze nie moge stworzyc relacji pomiedzy tabelami.
Tabela1: id, imie, nazwisko, data, numer telefonu, adres Tabela2: id, imie, nazwisko, obecnosc. Chcialbym aby jesli dodajemy do Tabela1 osobe to Tabela2 pobierala imie i nazwisko. Czy mozna zrobic takie powiazanie? Czy prosciej zrobic w formularzu zeby osoby byly dodawane do dwoch tabel? Ten post edytował kwi4tusz3k 31.01.2013, 11:06:42 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Odpowiadając ogólnie - da się to zrobić za pomocą tzw. triggerów (AFTER INSERT na Tabela1 - w nim dodajemy imie i nazwisko do Tabela2 - możesz o tym poczytać).
A teraz na poważnie - robisz coś na maksa źle. Jeśli masz taką strukturę: Tabela1 id | imie | nazwisko | data | numer_telefonu | adres Tabela2 id | imie | nazwisko | obecnosc To wystarczy ją znormalizować. Objaśnię Ci, po krótce o co chodzi ale też o tym poczytaj. Zostaw sobie tabelę 'Tabela1' tak jak jest natomiast Tabela2 zrób tak: Tabela2 id | id_Tabela1 | obecnosc Imię i nazwisko już masz w tabeli 'Tabela1' więc nie ma sensu wpisywać jej znowu do 'Tabela2'. Wystarczy dodać relację do odpowiedniego rekordu z tabeli 'Tabela1'. Przy dodawaniu nowego uzytkownika dodajesz go normalnie do Tabela1 a potem tworzysz rekord w Tabela2 z id_Tabela2 takim jakie ID ma ten ostatni wpis z Tabela1. Przy pobieraniu danych z Tabela2 wystarczy wówczas prosty join:
Ten post edytował Sephirus 31.01.2013, 11:17:53 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 7.11.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki za odpowiedz. Teraz pamietam ze kiedys tak robilem tez na zajeciach ale sie zapomina. Nie bardzo rozumiem to
Przy dodawaniu nowego uzytkownika dodajesz go normalnie do Tabela1 a potem tworzysz rekord w Tabela2 z id_Tabela2 takim jakie ID ma ten ostatni wpis z Tabela1. Ten post edytował kwi4tusz3k 31.01.2013, 12:11:35 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Robisz normalnie insert do tej pierwszej tabeli.
Potem pobierasz tzw ostatnio dodane ID (zakładam że id w tabelkach mają autoincrement). Dla funkcji z rodziny mysql_* to po prostu mysql_insert_id() a dla PDO to $pdoObj->lastInsertId(); Mając to ID, możesz teraz dodać to tabeli drugiej rekord podając to id jako id_tabeli1 aby zachować relację. Trochę jaśniej? (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 1.10.2025 - 08:58 |