10

行のIDが入力され、ドロップダウンリストからタイトルが選択されているテーブルを更新しようとしていますが、2つの問題があります。まず、データをモデルに渡す方法がわかりません。2番目の問題は、アクティブレコードを使用してテーブルを実際に更新することです。

コントローラクラス

class Update extends CI_Controller {

public function __construct()
{
        parent::__construct();
        //$this->load->model('addmodel');
        //$this->load->helper('form');
}

public function index()
{
    $this->load->view('updview');

}

public function updtitle() 
{   

    $data = array(
    'id' => $this->input->post('id'),
    'title' => $this->input->post('title') );
    //$data1['data'] = $data;

    $data1['data'] = $this->updmodel->upddata($data);
    $this->load->view('updview', $data1);
}
}

?>

モデルクラス

class Updmodel extends CI_Model {
// model constructor function
function __construct() {
    parent::__construct(); // call parent constructor
    $this->load->database();
}

public function upddata($data) {

    $this->db->where('emp_no', $data['id']);
    $this->db->update('title', $data['title']);

    return;
}
}

?>

見る

従業員の役職を更新する

<form action="http://localhost/ecwm604/index.php/update/updtitle" method="POST">
    employee id: 
        <input type=text name="id"><br />
    change title to: 
        <select name="title">
            <option value="Assistant Engineer">Assistant Engineer</option>
            <option value="Engineer">Engineer</option>
            <option value="Senior Engineer">Senior Engineer</option>
            <option value="Senior Staff">Senior Staff</option>
            <option value="Staff">Staff</option> 
        </select><br />
    <input type="submit" value="submit"/>
    <br />
<?php
    print_r($data);
    //echo $data['title'];
?>

</body>
</html>
4

5 に答える 5

31

コントローラ内

public function updtitle() 
{   
    $data = array(
        'table_name' => 'your_table_name_to_update', // pass the real table name
        'id' => $this->input->post('id'),
        'title' => $this->input->post('title')
    );

    $this->load->model('Updmodel'); // load the model first
    if($this->Updmodel->upddata($data)) // call the method from the model
    {
        // update successful
    }
    else
    {
        // update not successful
    }

}

あなたのモデルで

public function upddata($data) {
    extract($data);
    $this->db->where('emp_no', $id);
    $this->db->update($table_name, array('title' => $title));
    return true;
}

アクティブレコードクエリは次のようになります

"update $table_name set title='$title' where emp_no=$id"
于 2012-12-15T19:36:46.397 に答える
2

your_controllerにこれを書いてください...

public function update_title() 
{   
    $data = array
      (
        'table_id' => $this->input->post('table_id'),
        'table_title' => $this->input->post('table_title')
      );

    $this->load->model('your_model'); // First load the model
    if($this->your_model->update_title($data)) // call the method from the controller
    {
        // update successful...
    }
    else
    {
        // update not successful...
    }

}

your_modelにいる間...

public function update_title($data)
{
   $this->db->set('table_title',$data['title'])
         ->where('table_id',$data['table_id'])
        ->update('your_table');
}

これはうまくいきます...

于 2014-12-15T12:45:46.783 に答える
2

codeignitorで更新する方法は?

複数の行で同じステータスを更新する場合は常に、whereのwhere_in insteamを使用します。または、変更する場合は、単一のレコードのみがwhereを使用できます。

以下は私のコードです

$conditionArray = array(1, 3, 4, 6);
$this->db->where_in("ip_id", $conditionArray);
$this->db->update($this->table, array("status" => 'active'));

その完璧な動作。

于 2018-08-16T04:43:19.387 に答える
1

codeigniter docで、特定のフィールドを更新する場合は、これを実行してください

$data = array(
    'yourfieldname' => value,
    'name' => $name,
    'date' => $date
);

$this->db->where('yourfieldname', yourfieldvalue);
$this->db->update('yourtablename', $data);
于 2018-06-11T03:51:16.137 に答える
-1
function getBankMaster()
{
    
    $this->db->select('kr.id as kr,bk.id as bk_id ');    
    $this->db->from("ut_axis_klot as kr");       
    $this->db->join("ut_axis_bankmaster as bk","right(rtrim(kr.funding_ac),7) = right(rtrim(bk.funding_ac),7)","left");       
    $this->db->having('bk_id is null');     

    $query = $this->db->get();  

    // echo $this->db->last_query();die;

    if($query->num_rows() > 0)
    {
        $data = $query->result();

        foreach($data as $val)
        {
            $id = $val->kr;

            $this->db->where('id', $id);
            $this->db->update($this->db_sdip, array('amc_remark' => 'Wrong Account Number'));                
        }

       
    }
    else
    {
        return NULL;
    }
}
于 2021-12-10T12:12:41.510 に答える