Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Jak wstawic dane do 2 tabel ( w tym samym czasie)
alsz82
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.04.2009

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


Witam mam problem w stawieniem w tym samym czasie danych do dwóch tabel. Kod wyglada nastepująco:
Kod
<font size="1"><?php

$uzytkow_imie=$_POST['uzytkow_imie'];
$uzytkow_nazwisko=$_POST['uzytkow_nazwisko'];
$PESEL=$_POST['PESEL'];
$firma=$_POST['firma'];
$mail=$_POST['mail'];

     if (!$uzytkow_imie ||!$uzytkow_nazwisko || !$PESEL || !$firma || !$mail)

         {
             echo 'Nie podano wszystkich danych <br\>'
                  .'Prosze wrócić do poprzedniej strony';

             exit;
         }

             if (!get_magic_quotes_gpc())

             {

                 $uzytkow_imie=addslashes($uzytkow_imie);
                 $uzytkow_nazwisko=addslashes($uzytkow_nazwisko);
                 $PESEL=addslashes($PESEL);
                 $fima=addslashes($firma);
                 $mail=addslashes($mail);

             }

@ $db=new mysqli('localhost','******','*****','przychodnia_1');


if(mysqli_connect_errno())

     {
         echo 'Błąd , Nie połączono z baza danych. Spróbuj ponownie';
         exit;
     }    

$zapytanie_uzytkow = "insert into uzytkownik values ('".$uzytkow_imie."','".$uzytkow_nazwisko."')";
$zapytanie_info= "insert into uzytkownik_info values ('".$PESEL."','".$fima."','".$mail."')";

$wynik_uzytkow = $db->query($zapytanie_uzytkow);
$wynik_info = $db->query($zapytanie_info);

if($wynik_uzytkow && $wynik_info)

     echo  $db->affected_rows.
     'Pacjent zapisany do bazy';

     else

         {
             echo 'Nie zapisano pacjenta';
         }

echo $zapytanie_uzytkow;
   echo $wynik_info;
?></font>

Nastepuje łaczenie z baza.
Pierwsza czesc tzn zmienna $wynik_uzytkow jest wyswietlana(dla sprawdzenia), jednak $wynik_info juz nie :(.
Jak to rozwiazac ??

Ten post edytował alsz82 19.07.2009, 23:37:11
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. bbcode
  2. mysql_error" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
planet
post
Post #3





Grupa: Zarejestrowani
Postów: 61
Pomógł: 6
Dołączył: 15.07.2009
Skąd: Śląsk->Ruda Śląska

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


Cytat(alsz82 @ 20.07.2009, 00:12:44 ) *
Pierwsza czesc tzn. zmienna $wynik_uzytkow jest wyswietlana(dla sprawdzenia), jednak $wynik_info juz nie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) .


Kod
echo $zapytanie_uzytkow;
  echo $wynik_info;


eee piszesz, że zmienna $wynik_uzytkow jest wyświetlana a w echo masz $zapytanie_uzytkow, chyba, że dajesz echo gdzie indziej a kodu nie dałeś. wyprintuj sobie oba zapytania i wklej do phpMyAdmin, żeby zobaczyć, czy w nich nie ma błędów.
Go to the top of the page
+Quote Post
InosU31
post
Post #4





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


  1. <?php
  2. zapytanie_info= "insert into uzytkownik_info, values, 3_kolumna  ('".$PESEL."','".$fima."','".$mail."')";
  3. ?>


chcesz zapisac do dwoch kolumn 3 wartosci;-)

brakuje ci jednej kolumny w tym zapytaniu ;-)
Go to the top of the page
+Quote Post
alsz82
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.04.2009

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


Witam, dzieki za informacje, bardzo mi pomogły wszystko sie dodaje tam gdzie trzeba. Dzieki InosU31,planet.
Jednak mam pewien problem, poniewaz chce pobrac dane z pierwszego zapytania tzn. id_uzytkownika ktore jest auto_increment PRIMAY_KEY, i chce aby dane "Id_uzytkownika z pierwszego zapytania" zapisały sie do drugiego
zapytania pod id_pacjent
.Jednak dane w pierwszym zapytania nie sa jeszcze zapisane poniewaz musi byc spełniony warunek ze "wszystkie pola musza byc uzupelnione i byc zapisane" jezeli pacjent nie zostal zapisany to nie mam id_uzytkownika !!.
Dane sa zapisywane jezli z pacla nadam wartosc id_pacjent w $zapytanie_info

Kod
@ $db=new mysqli('localhost','******','*******','przychodnia_1');
    
    $zapytanie_uzytkow = "insert into uzytkownik (`id_uzytkow` ,`uzytkow_imie` ,`uzytkow_nazwisko`)
    values (null,'".$uzytkow_imie."','".$uzytkow_nazwisko."')";
    
    $id_pacjent = mysqli_insert_id($db);
    
    echo "ID=" .$id_pacjent;
    echo '<br>';
    
    
    $zapytanie_info= "insert into uzytkownik_info (`id_info` ,`id_uzytkow` ,`PESEL` ,`mail` ,`firma`)
    values (NULL,'".$id_pacjent."','".$PESEL."','".$firma."','".$mail."')";


Chce aby dane były pobierane automatycznie. Wyczytalem na forum o zastosowaniu funkcji mysql_insert_id(), id_pacjent=0 !!; ale w moim przypadku nie działa :(

Czekam na na sugestie.POZDRAWIAM


Ten post edytował alsz82 20.07.2009, 22:21:13
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No jak masz mieć ID, skoro nie wykonujesz zapytania...? (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Go to the top of the page
+Quote Post
alsz82
post
Post #7





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.04.2009

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


Cytat(erix @ 20.07.2009, 23:13:45 ) *
No jak masz mieć ID, skoro nie wykonujesz zapytania...? (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)


Problem po czesci rozwiazany zrobilem to nastepujaco moze komus sie przyda:

Kod
mysqli_query($db,$zapytanie_uzytkow);
mysqli_insert_id($db);

echo "Pokaz id_pacjenta= ',mysqli_insert_id($db);

$id_pacjent=mysqli_insert_id($db);


Tylko zastanawia mnie czemu wartosc mysqli_insert_id($db) wzrasta za kazdym razem o 2 a nie o 1 ?

Ten post edytował alsz82 21.07.2009, 00:22:39
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(alsz82 @ 21.07.2009, 00:21:40 ) *
Problem po czesci rozwiazany zrobilem to nastepujaco moze komus sie przyda:

Kod
mysqli_query($db,$zapytanie_uzytkow);
mysqli_insert_id($db);

echo "Pokaz id_pacjenta= ',mysqli_insert_id($db);

$id_pacjent=mysqli_insert_id($db);


Tylko zastanawia mnie czemu wartosc mysqli_insert_id($db) wzrasta za kazdym razem o 2 a nie o 1 ?


Jak dla mnie dlatego, że wywołujesz tą funkcję aż trzy razy?
Go to the top of the page
+Quote Post
alsz82
post
Post #9





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.04.2009

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


Cytat(fifi209 @ 21.07.2009, 01:29:37 ) *
Jak dla mnie dlatego, że wywołujesz tą funkcję aż trzy razy?


Wielkie dzieki miales racje, problem polegał ze insert był wykonywany 2 razy
Kod
$zapytanie_uzytkow = "insert into uzytkownik (`id_uzytkow` ,`uzytkow_imie` ,`uzytkow_nazwisko`)
values (null,'".$uzytkow_imie."','".$uzytkow_nazwisko."')";

a w dalszej czesci kodu :

Kod
$wynik_uzytkow = $db->query($zapytanie_uzytkow);


i dane był wprowadzane 2 razy dzieki wszystkim ktorzy odpowiadali na dany temat :).
Temat uwazam za zamkniety
Go to the top of the page
+Quote Post

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: 25.09.2025 - 17:05