douzhang1364 2013-11-25 05:03 采纳率: 0%
浏览 53

在CodeIgniter中更新记录数据库

I already add,view,delete record but I can't update record in database. however when i try update name,alamat,etc is unchanged in database. I have listed my controller , model and view below:

model code

    function update($id,$siswa)
        {
            $this->db->where($this->primary_key,$id);
            $this->db->update($this->table_name,$siswa);
        }

controller code

    function update($id=1)
            {
                $this->_set_fields();
                $siswa = $this->siswa_model->get_by_id($id)->row();
                $this->form_validation->id = $id;
                $this->form_validation->nama = $siswa->nama;
                if (isset($_POST['jenis_kelamin'])) {
                    $_POST['jenis_kelamin'] = strtoupper($data['siswa']['jenis_kelamin']);
                }
                if (isset($_POST['tanggal_lahir'])) {
                    $data['siswa']['tanggal_lahir'] = date('d-m-Y',strtotime($data['siswa']['tanggal_lahir']));
                }

                $data['title'] = 'Update siswa';
                $data['message'] = '';
                $data['action'] = site_url('siswa/updateSiswa');
                $data['link_back']= anchor('siswa/index/','Back to list of siswas',array('class'=>'back'));

                $this->load->view('siswaEdit',$data);
            }

            function updateSiswa()
            {
                //set common properties
                $data['title'] = 'Update siswa';
                $data['action'] = site_url('siswa/updateSiswa');
                $data['link_back']= anchor('siswa/index/','Back to list of siswas',array('class'=>'back'));

                //$this->load->library('form_validation');
                //set validation properties

                    $this->_set_fields();
                    $this->_set_rules();

                    //$data['action']=('siswa/update/'.$id);

                    //run validation
                    if ($this->form_validation->run() === FALSE) {
                        $data['message']='';

                        $data['siswa'] = $this->siswa_model->get_by_id($id)->row_array();
                        if (isset($_POST['jenis_kelamin'])) {
                            $_POST['jenis_kelamin'] = strtoupper($data['siswa']['jenis_kelamin']);
                        }
                        if (isset($_POST['tanggal_lahir'])) {
                            $data['siswa']['tanggal_lahir'] = date('d-m-Y',strtotime($data['siswa']['tanggal_lahir']));
                        }

                        //set common properties
                        $data['title']='Update siswa';
                        $data['message']='';

                    }
                    else
                    {
                        //save data
                        $id = $this->input->post('id');
                        $siswa=array( 'id'=>$id,
                            'nama'=>$this->input->post('nama'),
                            'alamat'=>$this->input->post('alamat'),
                            'jenis_kelamin'=>$this->input->post('jenis_kelamin'),
                            'tanggal_lahir'=>date('Y-m-d', strtotime($this->input->post('tanggal_lahir'))));
                        $this->siswa_model->update($id,$siswa);
                        $data['siswa'] = $this->siswa_model->get_by_id($id)->row_array();

                        //set user message;
                        $data['message']='update siswa success';
                    }
                    $data['link_back']= anchor('siswa/index/','Lihat Daftar Siswa',array('class'=>'back'));

                    //load view
                    $this->load->view('siswaEdit',$data);
            }       

view code

    <!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>SIMPLE CRUD APPLICATION</title>
    <link href="<?php echo base_url();?>style/style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
    <div class="content">
        <h1><?php echo $title;?></h1>
        <div class="data">
            <table>
                <tr>
                    <td width="30%">ID</td>
                    <td><?php 
                            if (isset($siswa->id)) {
                            echo $siswa->id;}
                        ;?>
                    </td>

                </tr>
                <tr>
                    <td valign="top">Name</td>
                    <<td><?php 
                            if (isset($siswa->nama)) {
                            echo $siswa->nama;}
                        ;?>
                    </td>
                </tr>
                <tr>
                    <td valign="top">Alamat</td>
                    <td><?php 
                            if (isset($siswa->alamat)) {
                            echo $siswa->alamat;}
                        ;?>
                    </td>
                </tr>
                <tr>
                    <td valign="top">Jenis Kelamin</td>
                    <td><?php if (isset($siswa->jenis_kelamin)){
                         echo ($siswa->jenis_kelamin) =='M'?'Laki-Laki':'Perempuan';}
                         ;?>
                    </td>
                </tr>
                <tr>
                    <td valign="top">Tanggal Lahir (dd-mm-yyyy)</td>
                    <td><?php if (isset($siswa->jenis_kelamin)){
                            echo date('d-m-Y',strtotime($siswa->tanggal_lahir));}
                        ;?>
                     </td>
                </tr>
            </table>
        </div>
        <br/>
        <?php echo $link_back;?>
    </div>
</body>
</html>

can you help me find problem solving from my program?

  • 写回答

1条回答 默认 最新

  • dpc57092 2013-11-25 05:28
    关注

    I think the view page that you have shown above, it just list the record. you can list it in form to submit the data.

    评论

报告相同问题?

悬赏问题

  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序