Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Jak wstawic dane do 2 tabel ( w tym samym czasie)
Forum PHP.pl > Forum > Przedszkole
alsz82
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 ??
planet
Cytat(alsz82 @ 20.07.2009, 00:12:44 ) *
Pierwsza czesc tzn. zmienna $wynik_uzytkow jest wyswietlana(dla sprawdzenia), jednak $wynik_info juz nie 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.
InosU31
  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 ;-)
alsz82
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
erix
No jak masz mieć ID, skoro nie wykonujesz zapytania...? dry.gif
alsz82
Cytat(erix @ 20.07.2009, 23:13:45 ) *
No jak masz mieć ID, skoro nie wykonujesz zapytania...? 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 ?
Fifi209
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?
alsz82
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
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.