php - 使用 CI 更新两个表中的内容

标签 php mysql codeigniter

我在更新两个表的内容时遇到问题。这些表是关于用户的,第一个表用于登录目的,因此它包含用户名、电子邮件和密码,而第二个表用于用户详细信息。两者都与用户行的 ID 连接。我在更新这些内容时遇到问题。这是我的代码,我是 CI 新手,所以基本上不知道出了什么问题。

Controller :

    <?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 class Student extends CI_Controller {
     public function index()
     {
          $this->load->model('student_model'); 
          $data['all_students'] = $this->student_model->get_student_list();
          $this->load->view('admin_panel', $data);
     }
     public function view_student()
     {
        $this->load->model('student_model'); 
        $data['one_student'] = $this->student_model->get_one_student();
        $this->load->view('view_student', $data);
     }
     public function edit_student()
     {
        $this->load->model('student_model'); 
        $data['one_student'] = $this->student_model->get_one_student();
        $this->load->view('edit_student', $data);
     }
     public function update_student()
     {
        $this->load->model('student_model');
        $data['update_student'] = $this->student_model->update_student();
        $this->load->view('admin_panel', $data);
     }
}

查看

<?php $this->load->view('worker_templates/wheader');
$this->output->enable_profiler(TRUE);
$this->load->helper('form');
echo "<br/><br/><br/><br/><br/>";
echo form_open('student/update_student');

foreach ($one_student as $key => $value)
{
    echo "<div class='col-md-6'>";
    echo form_label('Name&nbsp', 'worker_name');
    echo form_input('Name', $value['worker_name']);


    echo form_label('Role&nbsp', 'role');
    echo form_input('Role', $value['role']);

    echo form_label('Email&nbsp', 'worker_email');
    echo form_input('Email', $value['worker_email']);
    echo "<br/><br/>";

    echo form_label('Phone&nbsp', 'phone');
    echo form_input('Phone', $value['phone']);
...

这很长,所以我不会把它全部复制来让你感到无聊。

型号:

public function get_one_student() //used to show a student, also to display data of one student for update
     {
        $this->db->select('*');
        $this->db->from('workers');
        $this->db->join('worker_details', 'worker_details.student_id = workers.worker_id');
        $this->db->where('worker_id', $_GET['id']);
        $q = $this->db->get();
          return $q->result_array();
     }
    public function update_student()
     {
    $data = array(
        'worker_name' => $this->input->post('worker_name'),
        'worker_email' => $this->input->post('worker_email'),
        'role' => $this->input->post('role'));
    $this->db->update('workers', $data); //first table
    $data2 = array(
        'phone' => $this->input->post('phone'),
        'date_of_birth' => $this->input->post('date_of_birth'),
        'sex' => $this->input->post('sex'),
        'university' => $this->input->post('university'),
        'speciality' => $this->input->post('speciality'),
      ... //again, very long, not including it all
        );
    $this->db->update('worker_details', $data2);//second table
     }

最佳答案

您需要更正模型中的 update_student() 函数。请将worker_id从您的html表单中隐藏起来,并按如下所示更正函数。

public function update_student()
     {
    $data = array(
        'worker_name' => $this->input->post('worker_name'),
        'worker_email' => $this->input->post('worker_email'),
        'role' => $this->input->post('role'));
    $this->db->where('worker_id', $this->input->post('worker_id'));
    $this->db->update('workers', $data); //first table
    $data2 = array(
        'phone' => $this->input->post('phone'),
        'date_of_birth' => $this->input->post('date_of_birth'),
        'sex' => $this->input->post('sex'),
        'university' => $this->input->post('university'),
        'speciality' => $this->input->post('speciality'),
      ... //again, very long, not including it all
        );

    $this->db->where('worker_id', $this->input->post('worker_id')); 
    $this->db->update('worker_details', $data2);//second table
     }

关于php - 使用 CI 更新两个表中的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33873157/

相关文章:

php - 从 post 到单个 mysql 行的数组

php - 使用 codeigniter 的验证码不起作用

php - PDO 无法访问数据库连接实例

python - 少量删除 SQLAlchemy MySQL

arrays - 使 Codeigniter 网站多语言化的最佳方法。从 lang 数组调用取决于 lang session ?

php - 在 CodeIgniter 应用程序中实现服务层的正确方法

php - 使用 codeigniter PayPal_Lib 库的 PayPal 定期付款

Javascript SELECT BOX 选项依赖于所选的其他 SELECT BOX 选项

php - 如何在php中保存多维数组

php - 使用 Codeigniter 闭包表显示分层数据