0

ユーザーコントローラーの関数内にこのコードがあります。私は、Codeigniter を使用しています。

$name_user = $this->input->post('contact-company');

$company_name = $this->input->post('name-company');
$company_orgnr = $this->input->post('orgnr-company');
$phone_company = $this->input->post('phone-company');
$email_company = $this->input->post('email-company');

//Insert a a new user                        
$user_info = array(
                'username'  => $email_company,
                'name_user' => $name_user
            );
$company_info = array(
                'name' => $company_name,
                'orgnr' => $company_orgnr,
                'phone' => $phone_company,
                'email' => $email_company
            );

//Insert a new user in db
$query_insertuser = "START TRANSACTION";

//Get sql for inserting a new user
$um = new Usermodel();
$query_insertuser .= $um->getSQLInsert($user_info);

//Get sql for inserting a new company
$cm = new Companymodel();
$query_insertuser .= $cm->getSQLInsert($company_info);

//Get sql for inserting relation between user
//and company (How do I get ID of user and ID of company to use?)
$upm = new Userprofilemodel();
$query_insertuser .= $upm->getSQLInsert();

$query_insertuser .= "COMMIT";

//Do the atual insert
$um->insert($query_insertuser);

フォームからの登録を処理するために使用されます。(検証はフォーム検証ライブラリを介して行われます)-

  • ユーザー名、name_user を持つユーザーは、users-table に格納されます
  • 会社は会社テーブルに格納されます
  • 企業とユーザーの関係は userprofile-table に保存されます

コードは一目瞭然だと思いますが、関係を userprofile-model に挿入する方法が明確ではありません。ユーザーの最後に挿入されたIDと会社の最後に挿入されたIDが必要ですが、呼び出す前に実際にユーザーや会社を挿入していないため、コードにはそれがありません$upm->getSQLInsert();

それとも私はこれを間違ってやっていますか?ヒントを教えてください...

4

1 に答える 1