![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
witam ponownie mam jeszcze jeden problemik. wprowadzam z formularza dane do 3 tabel (klient, samochod, auto_rodzaj).
Klient może mieć parę samochodów i kilka samochodów może być tego samego rodzaju. Poniższy kod działa mi poprawnie w przypadku jeśli Klient i auto_rodzaj istnieją w bazie (do nich jest dodawany nowy samochód). Problem pojawia się jeśli dodaję nowego klienta, auto_rodzaj i samochód. Do żadnej tabeli nie jest nic wstawiane. Wydaje mi się że polecenie insert do tabeli samochód nie pobiera wartości idKlienta i idAuto które powinny być pobrane przez zapytanie select (oczywiście pewien tego nie jestem). Proszę o pomoc jak to rozwiązać bo sam nie daje rady.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
W warunku dodajesz rekordy jeśli wwcześniejsze zapytania zwrócą błędy, a chyba chcesz jeśli zwrócą 0 rekordów.
Nowe id możesz pobrać funkcją mysql_insert_id" title="Zobacz w manualu PHP" target="_manual -------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
dodałem mysql_insert_id jak powyżej lecz nadal wyskakuje mi błąd: Cannot add or update a child row: a foreign key constraint fails (`db772113/Samochod`, CONSTRAINT `Samochod_ibfk_28` FOREIGN KEY (`IdAuta`) REFERENCES `Auto_rodzaj` (`IdAuta`)) co może być jego przyczyną ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
A jakich wartości się spodziewasz, ze mogą wystąpić pod zmiennymi $zapytanie3 i $zapytanie4 ?
-------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
nie zabardzo rozumiem, mam źle tą instrukcje if($zapytnie3 && $zapytanie4)
![]() one mają przedstawiać rekord z bazy jeżeli nie istnieje to wykonujemy to co jest w środku instrukcji... mam okrutne wrażenie że namotałem w tej instrukcji, proszę o pomoc i wyjaśnienie co jest źle |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 15 Dołączył: 18.03.2009 Ostrzeżenie: (10%) ![]() ![]() |
A spróbuj z !isset.
A to Ci dobrze działa?: Kod <?php
if ($wynik2 ) { echo 'Klient został dodany prawidłowo'; } else { echo 'Wystąpił błąd przy dodawaniu klienta'; } ?> -------------------- ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
z !isset efekt jest taki sam.
instukcja if (wynik2) odkąd jest ten błąd wogóle nie działa, w kodzie mam wykomentowane echo 'mysql_insert_id' jeśli je chce wywołać też nic się nie dzieje wogóle nie reaguje. Połączenie miedzy tabelami jest restrict - restrict przy resrict -cascade jest to samo (ogólnie połączenia są w porządku ponieważ jeśli klient i auto_rodzaj istnieje to bez problemu dodawany jest nowy samochód z poprawnymi kluczami obcymi ). ja nie mam pojęcia już gdzie co jest źle. HELP |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 3 Dołączył: 1.04.2007 Skąd: Gdańsk / Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
błąd musi być gdzieś indziej bo on wogóle nie wykonuje instrukcji if (wynik2)
nie wywołuje echo 'IdKlienta' <- (mysql_insert_id) tak jakby mu coś wcześniej nie pasowało |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 15 Dołączył: 18.03.2009 Ostrzeżenie: (10%) ![]() ![]() |
Jeżeli masz
Kod $zapytanie4 = "SELECT IdKlienta, Email FROM Klient WHERE Email = '$email'"; $wynik4 = mysql_query($zapytanie4); $row1 = mysql_fetch_array($wynik4); $id_kl = $row1['IdKlienta']; to pod tym daj Kod echo $id_kl; i powiedz, czy się wyświetli id klienta. -------------------- ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
nie wyświetla, no ale to raczej dobrze bo ja dodaje nowego klienta który jest dodawany w instrukcji if poniżej zapytania sprawdzają czy dany klient już istnieje jeśli tak do dodają tylko samochód (else) i przypisują do niego klucze obce z klienta i auto_rodzaj.
wtedy tez instrukcja if (wynik2) działa poprawnie. wszystko się sypie jak dodaje nowego klienta, auto_rodzaj i samoch |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 15 Dołączył: 18.03.2009 Ostrzeżenie: (10%) ![]() ![]() |
A zamiast
Kod if (!(zapytanie3 && zapytanie4)) Kod if (!('$id' && '$id_kl'))
-------------------- ![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
no zajebiście
![]() ![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Widzę, że nikt poza mną już nie zauważył, iż w zmiennych $zapytanie3 i $zapytanie4 było zapytanie a nie jego wynik.
-------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
PanGuzol zczaiłem że było zapytanie a nie wynik. Tylko tak to już jest jak się za długo siedzi przy własnym kodzie i się mota z wieloma pomysłami na sekunde.
![]() najważniejsze że rozwiązanie udało się znaleźć i że wiem skąd i dlaczego. Dzięki wielkie jeszcze raz |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:41 |