na początku opiszę powiązanie bazy:
Tabela ZEGAREK zwiera dane
ID_ZEGAREK int primary key;
Producent varchar(20);
Tablea Atrybuty posiada atrybuty dotyczące zegarka, ale nie będę ich wymieniał bo są mało istotne. Głównym atrybutem wiążącym tabelę ATRYBUTY z ZEGAREK jest :
ID_ZEGAREK_obcy int;
Oczywiście jest dodane powiązanie między tabelami. Baza jest INNODB więc wszystkie takie podstawowe zależności zostały zachowane.
Mam zapytanie następujące:
CODE
$pobranie_id_zegarka="select (ID_ZEGARKA)+1 FROM ZEGAREK ORDER BY ID_ZEGARKA DESC limit 1";
Zapytanie zwraca ostatnie ID // przykładowo w bazie jest 81 wpisów to wpis uzyskany z tego zapytanie będzie równy 82
CODE
$wstawienie_do_zegarek="INSERT INTO ZEGAREK(ID_ZEGARKA,Producent) VALUES ('".$pobranie_id_zegarka."','" . $_POST[Producent] . "')";
Tu wstawiam do tabeli ZEGAREK nowe ID wczesniej pobrane oraz producenta wybranego z formularza. Z tym nie ma problemu, dane zostają wstawione do tabeli.
Natomiast i tuaj pojawia się problem, zapytanie:
CODE
$zegarek_dodawany = "INSERT INTO ATRYBUTY (ID_ZEGARKA_obcy,Nazwa_zeg,Wymiary,Mechanizm,Obudowa,Tarcza,Wodoszczelnosc,Stope
,Budzik,Datownik,Pasek,Dodatkowe_informacje,Gwarancja,Cena,ID_KATEGORIA_obcy) VALUES
(
'".$pobranie_id_zegarka."',
.
.
.
);
,Budzik,Datownik,Pasek,Dodatkowe_informacje,Gwarancja,Cena,ID_KATEGORIA_obcy) VALUES
(
'".$pobranie_id_zegarka."',
.
.
.
);
Wyskakuje błąd:
Niepoprawne zapytanie: Cannot add or update a child row: a foreign key constraint fails (`149996/ATRYBUTY`, CONSTRAINT `FK_ATRYBUTY_ZE` FOREIGN KEY (`ID_ZEGARKA_obcy`) REFERENCES `ZEGAREK` (`ID_ZEGARKA`))
Jak można rozwiązać tą sytuację ? Chcę dodać po prostu wprowadzać dane do 2 tabel a teraz jest to niemożliwe.