Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]wstawianie danych do dwoch tabel jednoczesnie, problem z id
mattii
post
Post #1





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 29.01.2010

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


przez formularz chciałbym oddawac sobie dane do bazy

oto kod ktory je ma dodawac:

  1.  
  2. <?php
  3.  
  4.  
  5.  
  6. $login=$_POST['login'];
  7. $haslo=$_POST['haslo'];
  8. $imie=$_POST['imie'];
  9. $nazwisko=$_POST['nazwisko'];
  10. // reszta danych
  11.  
  12.  
  13. require "db_connect.php";
  14. // wywoluje funkcje db_connect()
  15. db_connect();
  16.  
  17. $zapytanie1="insert into osoba (id_osoby,imie, nazwisko) VALUES (NULL,'".$imie."','".$nazwisko."' )";
  18.  
  19. $id_osoby= mysqli_insert_id($bd_lacz);
  20.  
  21. $wynik1 = $bd_lacz->query($zapytanie1);
  22.  
  23. $zapytanie2="insert into uzytkownicy(id_usera,id_osoby, login, haslo) Values (NULL,'".$id_osoby."','".$login."','".$haslo."', )";
  24. $wynik2 = $bd_lacz->query($zapytanie2);
  25.  
  26. if($wynik1) {
  27. echo "Osoba dodana do bazy.";
  28. }
  29.  
  30. if (!$wynik1) {
  31. echo "Osoba nie została dodana do bazy. ";
  32. }
  33.  
  34. if($wynik2) {
  35. echo "Użytkownik dodany do bazy.";
  36. }
  37.  
  38. if (!$wynik2) {
  39. echo "Użytkownik nie został dodany do bazy. ";
  40. }
  41.  
  42.  
  43. ?>
  44.  
  45.  
  46.  



no i jeszcze funkcja laczenia z baza:

  1.  
  2. <?php
  3. /******************************************************
  4. * db_connect.php
  5. * konfiguracja połączenia z bazą danych
  6. ******************************************************/
  7.  
  8. function db_connect() {
  9.  
  10. global $bd_lacz;
  11.  
  12. @ $bd_lacz = new mysqli('localhost', 'root', '', 'baza');
  13.  
  14. if (mysqli_connect_errno()) {
  15. echo 'Połaczenie z baza danych nie powiodło się: '.mysqli_connect_error();
  16. exit();
  17. }
  18.  
  19. }
  20.  
  21. ?>



efekt jest taki ze osobę faktycznie dodaje, ale użytkownika już nie - wydaje mi sie, ze problem jest z przekazaniem od osoby do tabeli użytkowników?? Jak to ma wyglądać poprawnie (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
emtiej
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


  1. #
  2. #
  3. <?php
  4. #
  5. /******************************************************
  6. #
  7. * db_connect.php
  8. #
  9. * konfiguracja połączenia z bazą danych
  10. #
  11. ******************************************************/
  12. function db_connect() {
  13. global $bd_lacz;
  14. @ $bd_lacz = new mysqli('localhost', 'root', '', 'baza');
  15. if (mysqli_connect_errno()) {
  16. echo 'Połaczenie z baza danych nie powiodło się: '.mysqli_connect_error();
  17. exit();
  18. }
  19.  
  20. return $db_lacz;
  21.  
  22.  
  23. }
  24.  
  25. ?>


Nie powinno być tak?
Wtedy
  1. $lacz = db_connect();
  2. $wynik = $lacz->query($zapytanie);


Co do zapytań to nie wiem jaki jest typ pola user_id, jeżeli ma auto_increment no to nie podajesz NULL a ''(dwa apostrofy), czyli:
  1. $zapytanie1="insert INTO `osoba` (id_osoby,imie, nazwisko) VALUES ('','$imie','$nazwisko')"; // dla ułatwienia i przejrzystości zamiast cudzysłowów dawaj apostrofy, a jeżeli już dajesz cudzysłowy to poprzedzaj je backslashem \


jeżeli masz auto_increment w polu id_osoby i id_user czy jak tam to nazwałeś to podajesz pustą wartość, a wartość sama się doda
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: 15.10.2025 - 19:54