Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] INSERT klientID w dwie tabele
Forum PHP.pl > Forum > Przedszkole
lol75
Cześć
Mam banalny problem:
Mam bazę:

  1. CREATE TABLE klienci
  2. ( klientid int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  3. imie char(50) NOT NULL,
  4. nazwisko char(50) NOT NULL,
  5. adres char(100) NOT NULL,
  6. miejscowosc char(30) NOT NULL,
  7. telefon char(15)
  8. ) type = InnoDB;
  9.  
  10. CREATE TABLE zamowienia
  11. ( klientid int UNSIGNED NOT NULL REFERENCES klienci(klientid),
  12. zamowienieid int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  13. pokoj char(20) NOT NULL,
  14. ) type = InnoDB;


Chcę zrobić i takiego inserta, żeby dane osobowe klienta wylądowały w tabeli klienci a dane dotyczące zamówienia w tebeli zamówienie.
Chcę też aby w tabeli zamówienie wylądowało te same klientid abym wiedział kto złożył to zamówienie.
Klientid w tabeli klient generuje mi się sam. Po prostu wpisuję w insercie wartość NULL i dostaję wartość kolejną.
Tyle tylko, że jej nie znam i nie wiem co wpisać w tablicę zamówienia.

Pomóżcie.
CuteOne
  1.  
  2. $id = mysql_query("INSERT INTO klienci (id_klienta,...) values (NULL,...)");
  3.  
  4. $id_zam = mysql_query("INSERT INTO zamowienia (id_klienta,...) values ($id,...)");
  5.  
  6. echo $id.' '.$id_zam;
  7.  


@ heh faktycznie ;D chyba z przyzwyczajenia do $id=$db->insert()..
nospor
@CuteOne coś ci się troche pomyliło
http://pl2.php.net/manual/en/function.mysql-insert-id.php
lol75
Kurcze, próbuje i próbuje z tym mysql_insert_id i wciąż dostaję 0

  1. $zapytanie_klienci = "insert into klienci values( NULL, '".$imie."', '".$nazwisko."', '".$adres."', '".$miescowosc."', '".$telefon."')";
  2. $wynik = $db->query($zapytanie_klienci);
  3.  
  4. printf("Ostatni rekord id %d\n", mysql_insert_id());


I jako wynik dostaję: Ostatni rekord id 0

Co robię nie tak?
Dominis
sprobuj tak:

  1. $last_id = mysqli_insert_id($db);
CuteOne
A $db to jakaś klasa? PDO? bo jak tak to nie dziwota wink.gif
Dominis
  1. $db= new mysqli('localhost', 'user', 'pass', 'baza');
wink.gif
lol75
Wielkie dzięki! Działa!!!! headsetsmiley.png

Dla potomnych:

  1. // Zalogowanie się w bazie danych
  2. @ $db = new mysqli ($adres_serwera, $nazwa_bazy, $haslo_bazy, $uzytkownik);
  3. if(mysqli_connect_errno()){
  4. echo 'Blad polaczenia z baza danych. ';
  5. exit;}
  6.  
  7. // Wpisanie do bazy klienci
  8. $zapytanie_klienci = "INSERT INTO `klienci`(`klientid`, `imie`, `nazwisko`) VALUES ( NULL, '".$imie."', '".$nazwisko."')";
  9.  
  10. $wynik = $db->query($zapytanie_klienci);
  11. $last_id = mysqli_insert_id($db); // Poznajemy jaka wartosc wpadla do pola klientid
  12.  
  13.  
  14. // Wpisanie do bazy zamowienia
  15. $zapytanie_zamowienia = "INSERT INTO `zamowienia`(`klientid`, `zamowienieid`, `pokoj`) VALUES ( '".$last_id."', NULL,'".$pokoj."')";
  16. $wynik2 = $db->query($zapytanie_zamowienia);
  17.  
  18. // Dla wszystkiego wypisuje wartosc zmiennej
  19. echo "Ostatnie ID:".$last_id;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.