![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam 3 tabele (innoDB). 1. klienci (klientid-klucz glw., pole1, pole2...) 2. ksiazki (ksiazkaid-klucz glw., klientid-klucz obcy do klientid z tabeli klienci, pole1, pole2...) 3. opisy (ksiazkaid-klucz obcy do ksiazkaid z tabeli ksiazki) Bez ustawionych kluczy obcych, wszystkie dane moge dodawac. Po ustawieniu kluczy jak powyzaj nie moge dodac danych. Komunikat przy dodaniu danych: Cannot add or update a child row: a foreign key constraint fails Poradzcie cos ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Jeżeli są wprowadzone klucze obce i związki oparte na nich, to znaczy, że baza sama bedzie pilnować, byś wprowadzał dane w odpowiedniej kolejności.
W tym przypadku najpierw muisz dodać odpowiedniego klienta, dopiero potem możesz dodać książkę, a dopiero na samym końcu - odpowiedni dla danej książki opis. Swoją drogą - mam wrażenie, że ten projekt jest nieco chybiony. Co to za baza, w której każda wprowadzona książka musi mieć klienta? -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Kolejność dodawania danych nie ma raczej znaczenia, modyfikując skrypt dodający dane (kolejność ich dodawania) zawsze mogę dodać tylko dane do tablei klienci. Przy pozostalych tabelach mam blad.
Pomijając oczywiście fakt, gdzie której każda wprowadzona książka musi mieć klienta - to tylko przykladowa nazwa. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Nawet wtedy, gdzy odpowiednie gdy istnieje odpowiedni rekord w tabeli zewnętrznej? Czyli np. klient, lub książka?
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dane dodaje jednym formularzem (wszystko razem) do 3 tabel. Tworzę 3 zmienne i kazda z nich jest sprawdzana czy zostala dodana do tablei czy nie.
![]() poprawiam --- nospor zmienna 3 analogicznie. Poprawnie dodaje mi tylko zmienna z danymi z $wynik1 - niezaleznie od kolejnosci ich zapisywania. Pozostale 2 zmienne zwracaja komunikat o bledzie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 07:46 |