Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Insert do dwóch tabel i relacje
pawelek86
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 9.02.2011

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


Mam następujący problem. Posiadam dosyć rozbudowaną bazę ale pokaże na przykładzie problem. Są dwie tabele:

  1. Tabela urzadzenie ma dwa pola:
  2. id_urzadzenia
  3. numer_urzadzenia


  1. Tabela pomiary ma trzy kolumny:
  2. id_pomiaru
  3. nazwa pomiaru
  4. wartosc_pomiaru
  5. id_urzadzenia - klucz obcy do powiazania tych dwoch tabel


Relacja jak jest taka ze jedno urządzenie ma wiele pomiarów:)

I teraz mam formularz w ktorym jest tak:
pole 0 gdzie wpisuje numer urzadzenia o wartosci $numer_urzadzenia
pole 1 to pomiar napiecia (przyjmijmy ze w bazie to bedzie jako 1) o wartosci $napiecie
pole 2 to pomiar pradu (przyjmijmy ze w bazie to bedzie jako 2) o wartosci $prad
pole 3 to pomiar..... , itp - jest ich powiedzmy 20 i więcej:)

I moim problemem jest to w jaki sposób je wpisywać - nie mogę samymi insertami się posłużyć wklepując po koleji:
KOD: ZAZNACZ WSZYSTKO
  1. mysql_query("insert into urzadzenie values('', '$numer_urzadzenia')");


tutaj coś powinno byćquestionmark.gifquestionmark.gif nie wiem:/

  1. mysql_query("insert into pomiary values('', 1,'$napiecie')");
  2. mysql_query("insert into pomiary values('', 2,'$prad')");



bo pogubią mi sie relacje.. moim zdaniem powinienem jakoś selecta dodać przed wpisywaniem pomiarów aby wiedzieć pod jakim id wpisany został ten numer urządzenia ale nie potrafię tego zrealizować... Coś słyszałem o transakcjach, itp ale nie potrafię nic sensownego wymyślić a po za tym wolałbym uniknąć transakcji które widzę że każdy coś o tym słyszał ale jest jak widmo....
Go to the top of the page
+Quote Post
trafas
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 12
Dołączył: 31.05.2006

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


Po zrobieniu inserta do tabeli "urzadzenie" wywołujesz zapytanie

  1. SELECT LAST_INSERT_ID()


które zwraca ci ostatnio utworzone id.

Wynik zapytania pakujesz do zmiennej i podajesz do wpisania w tabeli "pomiary" pod id_urzadzenia.

Musisz tylko pamiętać o tym, że w tabeli "urzadzenie" musisz mieć zdefiniowany klucz główny ( najlepiej id_urzadzenia ) z opcją autoincrement.

Pozdrawiam.


http://dev.mysql.com/doc/refman/5.0/en/inf...-functions.html
Go to the top of the page
+Quote Post
pawelek86
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 9.02.2011

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


Cytat(trafas @ 9.02.2011, 22:37:58 ) *
Po zrobieniu inserta do tabeli "urzadzenie" wywołujesz zapytanie

  1. SELECT LAST_INSERT_ID()


które zwraca ci ostatnio utworzone id.

Wynik zapytania pakujesz do zmiennej i podajesz do wpisania w tabeli "pomiary" pod id_urzadzenia.

Musisz tylko pamiętać o tym, że w tabeli "urzadzenie" musisz mieć zdefiniowany klucz główny ( najlepiej id_urzadzenia ) z opcją autoincrement.

Pozdrawiam.


http://dev.mysql.com/doc/refman/5.0/en/inf...-functions.html



A co zrobić jeżeli tabela urządzenia ma powiedzmy 5 kolumn i potrzebuję wartość innej kolumny która nie jest kluczem głównym, np nazwa_pomiaru?
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 Aktualny czas: 21.08.2025 - 18:20