![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 0 Dołączył: 8.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
phpmyadmin wyświetla mi następujący warunek #1452 - Cannot add or update a child row: a foreign key constraint fails (`pozycja_w_google/google`, CONSTRAINT `strony www_ID_fk` FOREIGN KEY (`ID`) REFERENCES `strony www` (`ID`))
Mam dwie tabele jedną z kluczem obcym kod php wstawia mi dane do tylko jednej tabeli do drugiej tabeli z tym kluczem obcym dane nie są wstawiane natomiast wstawienie polecenia insert into do okienka sql w phpmyadminie pokazuje mi warunek ten co u góry. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Próbujesz wstawić rekord z nieistniejącą wartością klucza obcego tabeli zależnej. Najpierw wstaw rekord do tabeli podstawowej (musisz nadać wartość klucza głównego, który jest jednocześnie kluczem obcym w tabeli, z którą masz problemy), obrazowo:
tab1 id_tab1 (PK) cos_tam1 cos_tam2 tab2 id_tab2 (PK) id_tab1 (FK) cos_tam1 cos_tam2 i teraz najpierw musisz zrobić insert do tab1, żeby uzyskać wartość id_tab1. Mam nadzieję, że nie namieszałem. Pzdr. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 0 Dołączył: 8.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
klucz główny w tabeli nadrzędnej ID int(11) not null auto_increment primary key i w tej pierwszej wartości są wstawiane z tego klucza głównego korzysta druga tabela ale kod php polecenie insert into nie działa, żadne dane nie są wstawiane do drugiej tabeli. Nie wiem czy dobrze ułozyłem zapytanie insert into do drugiej tabeli ale wydaje mi się że można pominąć te wartości. Tak samo jak: insert into nazwatabeli ('imie') values ('Jan') pole ID zostało pominięte dla ID int(11) not null auto_increment ID - jest wstawiane automtycznie i mi się wydaje że tak samo w przypadku kluczy obcych z innych tabel też można pominąć a wartości będą wstawiane automatycznie. No a może się mylę ?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
klucz główny w tabeli nadrzędnej ID int(11) not null auto_increment primary key i w tej pierwszej wartości są wstawiane z tego klucza głównego korzysta druga tabela ale kod php polecenie insert into nie działa, żadne dane nie są wstawiane do drugiej tabeli. Nie wiem czy dobrze ułozyłem zapytanie insert into do drugiej tabeli ale wydaje mi się że można pominąć te wartości. Tak samo jak: insert into nazwatabeli ('imie') values ('Jan') pole ID zostało pominięte dla ID int(11) not null auto_increment ID - jest wstawiane automtycznie i mi się wydaje że tak samo w przypadku kluczy obcych z innych tabel też można pominąć a wartości będą wstawiane automatycznie. No a może się mylę ? Mylisz się częściowo. Jeśli wstawiasz rekord(y) do tabeli powiązanej (w Twoim przypadku to będzie ta druga tabela) z jakąkolwiek inną tabelą (i masz poustawiane indeksy) to musisz podać wartość klucza obcego, do którego odnosi się dany rekord, inaczej dane nie zostaną wstawione, skąd niby silnik bazy ma wiedzieć, o który klucz Ci chodzi? Pokaż jeszcze zapytanie insert do obydwu tabel, rzuć kawałkiem kodu. Zobaczymy czy o to chodzi. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 0 Dołączył: 8.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
pierwsza tabela | ID | STRONY WWW | SLOWA FRAZY | - ID klucz główny auto_incerement int
druga tabela | LP | ID | SERWERY GOOGLE | STRONY WWW | SLOWA FRAZY | DATA | POZYCJA W GOOGLE | - LP - klucz główny ID - klucz obcy a oto zapytania sql foreach($slowa as $wyniki) { $pozycja_w_google = $pozycja_strony->getPosition($wyniki, $url); $zapytanie = "INSERT INTO `pozycja_w_google`.`strony www` (`STRONY WWW` , `SLOWA I FRAZY`) VALUES ('".$url."', '".$wyniki."')"; mysql_query($zapytanie); print "<!-- Zapytanie; $zapytanie -->"; $zapytanie1 = "INSERT INTO `pozycja_w_google`.`google` (`SERWERY GOOGLE`,`STRONY WWW` , `SLOWA FRAZY`,`DATA`, `POZYCJA W GOOGLE`) VALUES ('google.pl','".$url."', '".$wyniki."','".date("Y-m-d")."','".$pozycja_w_google."')"; mysql_query($zapytanie1); print "<!-- Zapytanie; $zapytanie1 -->"; } |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ale w czym problem tkwi? Wstaw na chama idka:
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 159 Pomógł: 0 Dołączył: 8.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
zapytanie1 nie miałem wstawionej kolumny `ID` i mysql_insert_id() ale teraz działa jak należy bo dane zostały wstawione.
Dzięki za pomoc |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
zapytanie1 nie miałem wstawionej kolumny `ID` i mysql_insert_id() ale teraz działa jak należy bo dane zostały wstawione. Dzięki za pomoc Proszę bardzo. Pozdrawiam -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:48 |