jednoczesne dodawanie danych do 3 tabel

0

witam. czy istnieje mozliwosc dodania danych z formularza do 3 tabel jednpoczesnie? Dodam ze tabele sa zesoba powiazane kluczami, a oprocz tego musze jeszcze pobrac wartosci z tabel slownikowych aby przypisac panstwo i miasto o odpowiednim id do tabeli addess.
Staralem sie napisac funkcje ktora zwraca id wpisanego elemenu, a nastepnie to id przypisuje do klucza obcego panstwa, ale niestety funkcja nie dziala. Formularz ten jest w PHP, a dokladniej w Code Igniterze. Prosze o pomoc

0

wklej to co napisałeś;p

0

kod modelu. Przeoblem troche ta funkcje i pobiera mi id panstwa i wojewodztwa ale mam problem z przekazaniem id usera i adresu

 
 function create_User()
       {

           $this->db->select('USR_ID');
           $this->db->where('USR_Nick', $this->input->post('username'));

           $USR_ID = $this->db->get('users');

            $this->db->select('ADDR_ID');
            $this->db->where('ADDR_StreetName', $this->input->post('ulica'));

           $ADDR_ID = $this->db->get('address');

           $users = array(

               'USR_Nick' => $this->input->post('username'),
               'USR_Pass' => md5($this->input->post('pass')),
               'USR_CreateDate' => date('Y-m-d H:i:s')
           );



           $address = array(
               'Country_COUNTRY_Id' => $this->input->post('country'),
               'State_STATE_ID' => $this->input->post('state'),
               'USERS_USR_ID' => $USR_ID,
               'ADDR_CityName' => $this->input->post('ulica'),
               'ADDR_StreetName' => $this->input->post('ulica'),
               'ADDR_StreetNr' => $this->input->post('nr_ulicy'),
               'ADDR_HomeNr' => $this->input->post('nr_domu'),
               'ADDR_ZIP' => $this->input->post('kod_pocztowy'),
               'ADDR_Fax' => $this->input->post('fax')

           );


           $client = array(
               'Address_ADDR_ID' => $ADDR_ID,
               'CLI_Email' => $this->input->post('email'),
               'CLI_Name' => $this->input->post('imie'),
               'CLI_LastName' => $this->input->post('nazwisko'),
               'CLI_NIP' => $this->input->post('nip'),
               'CLI_Regon' => $this->input->post('regon'),
               'CLI_Pesel' => $this->input->post('pesel'),
               'CLI_Phone' => $this->input->post('telefon')
           );


           
           
           $us = $this->db->insert('users', $users);
            $add = $this->db->insert('address', $address);
           $cli = $this->db->insert('client',$client);
          



           $data = array('us' => $us, 'cli' => $cli, 'add' => $add);

           return $data;

       }




0

nie da się zrobić inserta do trzech tabel - możesz do każdej po kolei - najpierw do tej, która nie ma fk

0

przeciez tak robie:

 
 $us = $this->db->insert('users', $users);
 $add = $this->db->insert('address', $address);
 $cli = $this->db->insert('client',$client);

przypisuje do do zmiennej, jezeli wszystkie zwroca true tzn ze rejestracja sie powiodla.

0

PO dodaniu usera trzeba pobrać jego id

1 użytkowników online, w tym zalogowanych: 0, gości: 1