Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]wprowadzanie rekordów problemik
pablo_83
post
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.

  1. <?php
  2. if  (!$con)
  3.        {
  4.                echo ("Nie mogę nawiązać połączenia");
  5.        }
  6.           else
  7.        {
  8.                      
  9.              mysql_query("SET NAMES 'utf8'");
  10.              mysql_query("SET collation_connection = utf8_polish_ci");
  11.            
  12.             //-----------------------------------------------------porównanie
  13.            $zapytanie4 = "SELECT IdKlienta, Email FROM Klient WHERE Email = '$email'";
  14.            $wynik4 = mysql_query($zapytanie4);
  15.            $row1 = mysql_fetch_array($wynik4);
  16.                $id_kl = $row1['IdKlienta'];
  17.                
  18.            $zapytanie3 = "SELECT Marka, Model, Rocznik, Pojemnosc, IdAuta FROM Auto_rodzaj WHERE Marka = '$marka' && Rocznik = '$rocznik' && Model = '$model' && Pojemnosc = '$pojemnosc' ";
  19.            $wynik3 = mysql_query($zapytanie3);
  20.            $row = mysql_fetch_array($wynik3);
  21.                $id = $row['IdAuta'];
  22.            //--------------------------------------------------------------
  23.            
  24.               if (!(zapytanie3 && zapytanie4))
  25.            {
  26.            
  27.            $wynik = mysql_query("INSERT INTO Klient (Imie, Nazwisko, Ulica, Miasto, Email, Telefon,Dom)
  28.            VALUES ('$imie', '$nazwisko', '$ulica', '$miasto', '$email', '$telefon','$dom')")
  29.            or die(mysql_error());
  30.  
  31.            $wynik1 = mysql_query ("INSERT INTO Auto_rodzaj (Marka, Model, Pojemnosc, Rocznik)
  32.            VALUES ('$marka', '$model', '$pojemnosc','$rocznik')") or die(mysql_error());    
  33.            
  34.                      
  35.            $wynik2 = mysql_query ("INSERT INTO Samochod (IdKlienta, IdAuta, Rejestracja, Data)
  36.            VALUES ('$id_kl','$id','$rejestracja', '$data')") or die(mysql_error());
  37.            mysql_close() or die(mysql_error());
  38.            }
  39.            
  40.            else{
  41.            $id_kl = $row1['IdKlienta'];
  42.            $id = $row['IdAuta'];
  43.  
  44.            $wynik2 = mysql_query ("INSERT INTO Samochod (IdKlienta, IdAuta, Rejestracja, Data)
  45.            VALUES ('$id_kl','$id','$rejestracja', '$data')") or die(mysql_error());
  46.            mysql_close() or die(mysql_error());
  47.            }
  48.        
  49.                  
  50.            if ($wynik2 )
  51.            {
  52.            echo 'Klient został dodany prawidłowo';
  53.            }
  54.            else {
  55.            echo 'Wystąpił błąd przy dodawaniu klienta';
  56.                    }
  57.            
  58.            }
  59. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pablo_83
post
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


  1. <?php
  2. if  (!$con)
  3.        {
  4.                echo ("Nie mogę nawiązać połączenia");
  5.        }
  6.          
  7.        else
  8.        {
  9.            
  10.            
  11.              mysql_query("SET NAMES 'utf8'");
  12.              mysql_query("SET collation_connection = utf8_polish_ci");
  13.            
  14.            
  15.            
  16.            //-----------------------------------------------------porównanie
  17.            $zapytanie4 = "SELECT IdKlienta, Email FROM Klient WHERE Email = '$email'";
  18.            $wynik4 = mysql_query($zapytanie4);
  19.            $row1 = mysql_fetch_array($wynik4);
  20.                $id_kl = $row1['IdKlienta'];
  21.                
  22.            $zapytanie3 = "SELECT Marka, Model, Rocznik, Pojemnosc, IdAuta FROM Auto_rodzaj WHERE Marka = '$marka' && Rocznik = '$rocznik' && Model = '$model' && Pojemnosc = '$pojemnosc' ";
  23.            $wynik3 = mysql_query($zapytanie3);
  24.            $row = mysql_fetch_array($wynik3);
  25.                $id = $row['IdAuta'];
  26.            
  27.            //---------------------------------------------------------
  28.          
  29.            if ((zapytanie3 && zapytanie4) ==0 )
  30.            {
  31.            
  32.            $wynik = mysql_query("INSERT INTO Klient (Imie, Nazwisko, Ulica, Miasto, Email, Telefon,Dom)
  33.            VALUES ('$imie', '$nazwisko', '$ulica', '$miasto', '$email', '$telefon','$dom')")
  34.            or die(mysql_error());
  35.            $IdKlienta = mysql_insert_id();
  36.            
  37.            
  38.            $wynik1 = mysql_query ("INSERT INTO Auto_rodzaj (Marka, Model, Pojemnosc, Rocznik)
  39.            VALUES ('$marka', '$model', '$pojemnosc','$rocznik')") or die(mysql_error());    
  40.            $IdAuta = mysql_insert_id();
  41.            
  42.            
  43.           // echo $IdKlienta.'<br> - zmienna klienta';
  44.           // echo $IdAuta.' - zmiennna idauto';
  45.            
  46.                    
  47.            $wynik2 = mysql_query ("INSERT INTO Samochod (IdKlienta, IdAuta, Rejestracja, Data)
  48.            VALUES ('$IdKlienta','$IdAuta','$rejestracja', '$data')") or die(mysql_error());
  49.            mysql_close() or die(mysql_error());
  50.            }
  51.            
  52.            else{
  53.            $id_kl = $row1['IdKlienta'];
  54.            $id = $row['IdAuta'];
  55.            $wynik2 = mysql_query ("INSERT INTO Samochod (IdKlienta, IdAuta, Rejestracja, Data)
  56.            VALUES ('$id_kl','$id','$rejestracja', '$data')") or die(mysql_error());
  57.            mysql_close() or die(mysql_error());
  58.            }
  59.        
  60.                      
  61.            if ($wynik2 )
  62.            {
  63.            echo 'Klient został dodany prawidłowo';
  64.            }
  65.            else {
  66.            echo 'Wystąpił błąd przy dodawaniu klienta';
  67.                    }
  68.            
  69.            }
  70. ?>


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ą(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (oczywiście wpisy nie są dodawane) help
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 2.10.2025 - 19:45