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
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