Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] Przydzielanie ID do do innej tabeli
matius71
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 22.08.2009

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


Witam,

wpisuje w formularzu dane. Wysyłam je i w bazie wszystko ładnie się wpisuje, nadaje się ID itd. Słowem wszystko gra. Pomyślałem żeby przy okazji wypełniania formularza zapytać użytkownika o inne dane które będą wpisywane do innej tabeli. I teraz mam takie tabele:

1. Samochod
ID | Marka | Model | Nr. rejestracyjny | i inne

Wypełniam formularz, pojawia się nowy wpis i wskakuje ID. Tyle mam teraz i działa. Teraz zaczynają się schody (dla mnie)

Pomyślałem że dodam tabele Oleje w której jest lista dostępnych nazw i tabele łączącą ID samochodu z ID oleju (zakładam że samochód może jeździć na paru olejach)

2 Olej i tam
ID | nazwa a| nazwa b | nazwa c| itd

Teraz zrobiłem tabele:

3.Samochod Olej
ID | ID samochodu | ID Oleju

Teraz problem. Gdy zakładam profil samochodu czyli tabela pierwsza (to mam) i w tym samym momencie chce wpisać w tabele nr 3 ID samochodu którego w sumie jeszcze nie znam bo nie wysłałem formularza to jak to sprytnie zrobić żeby to samo ID samochodu trafiło do ID tabeli 3? (IMG:style_emoticons/default/biggrin.gif) Bo z ID oleju z tabeli nr2 nie ma problemu bo ona istnieje i wystarczy odczytać ID. Myślałem już żeby najpierw tworzyć profil samochodu a dopiero później w jakimś innym formularzu pytać o rodzaj oleju bo wtedy bym znał już i wiedział jak odczytać ID samochodu.

A tu jest to co mam jeśli chodzi o przesyłanie do bazy do tabeli nr1

  1. if (!isset($error)) {
  2. try {
  3.  
  4. //insert into database with a prepared statement
  5. $stmt = $db->prepare('INSERT INTO samochod (Marka,Model,rejestracyjny,a,b,c,d) VALUES (:Marka,:Model,:rejestracyjny,:a,:b,:c,(IMG:style_emoticons/default/biggrin.gif) )');
  6. $stmt->execute(array(
  7. ':Marka' => $Marka,
  8. ':Model' => $Model,
  9. ':rejestracyjny' => $rejestracyjny,
  10. ':a' => $a,
  11. ':b' => $b,
  12. ':c' => $c,
  13.  
  14. ));
  15. $id = $db->lastInsertId('samochodID');
  16.  
  17. //redirect to index page
  18. header('Location: ....../........');
  19.  
  20. //else catch the exception and show the error.
  21. }
  22. catch (PDOException $e) {
  23. $error[] = $e->getMessage();
  24. }
  25.  
  26. }


Ten post edytował matius71 22.03.2018, 13:15:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


W linii 6 dodajesz nowy samochód, w linii 16 pobierasz jego ID (w przypadku MySQL nie jest potrzebna nazwa sekwencji przekazywana do tej funkcji).
Skoro masz ID samochodu, to możesz wstawić dane do tabeli 3.
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 01:27