入力した値をデータベース内のユーザーの値に追加する更新関数を作成しようとしています。(クラスに使用できるアカウントを教師に追加します)これまでのところ、クリックすると1つのアカウントを追加してからページを更新するテストボタンがあります。
これまでの私の機能は次のとおりです。
public function add_account()
{
$this->load->model("teacher_data_model");
$user = $this->ion_auth->user()->row();
$user_id = $user->id;
$data = array(
'user_id' => $user_id,
'unused_accounts' => [what do I insert here?]
);
$this->teacher_data_model->add_accounts($data, $user_id);
redirect('teacher', 'refresh');
}
この関数は確かにずさんです。私はまだこれにかなり慣れていません。この関数はユーザー ID を取得し、それを使用して教師を見つけて、所有している生徒アカウントの数を更新するモデルに渡します。これまでのところ、「unused_accounts」の値が固定されている限り、これは機能しますが、問題はこれを行うときです。
public function add_account()
{
// Getter of the user data
$user = $this->ion_auth->user()->row();
$user_id = $user->id;
$this->load->model("teacher_data_model");
//This gets the existing accounts
$num_accounts["record"] = $this->teacher_data_model->get_unused_accounts($user_id);
$this->load->view("teacher/teacher_data_viewer", $num_accounts);
$data = array(
'user_id' => $user_id,
'unused_accounts' => [what do I insert here?]
);
// data insertion
$this->teacher_data_model->add_accounts($data, $user_id);
redirect('teacher', 'refresh');
}
コントローラーまたはモデルの+1インクリメントかどうかはわかりませんが、この時点で検索されたデータをintとして識別することさえできないようです。
[ここに何を挿入しますか?] で $num_accounts を使用すると、次のデータベース エラーが発生します: エラー番号: 1054
「フィールド リスト」の不明な列「配列」
UPDATE teachers
SET user_id
= '1', unused_accounts
= 配列 WHERE user_id
= '1'
必要な場合に備えて、これが私のモデルです。
function add_accounts($data, $uid)
{
$this->db->where('user_id', $uid);
$this->db->update('teachers',$data);
}
編集:これは、データベースからデータを取得する私の関数です
function get_unused_accounts($usersid)
{
$this->db->select('unused_accounts');
$this->db->from('teachers');
$this->db->where('user_id', $usersid);
$query = $this->db->get();
return $query->result();
}
これがINT形式でデータを出力するかどうかはわかりません。ユーザーが少なくとも 1 つのアカウントを持っているかどうかを確認するためにこれを使用していたとき、ユーザーがアカウントを持っていなくても常に true として受け入れます。