更新记录数据库CodeIgniter中
问题描述:
我已经添加,查看,删除记录,但我不能更新数据库中的记录。然而,当我尝试更新名称,alamat等在数据库中保持不变。我在下面列出我的控制器,模型和视图:更新记录数据库CodeIgniter中
型号代码
function update($id,$siswa)
{
$this->db->where($this->primary_key,$id);
$this->db->update($this->table_name,$siswa);
}
控制器代码
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);
}
视图代码
<!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>
,你能不能帮我找到问题的解决我的计划?
答
我想你上面显示的视图页面,它只是列出记录。你可以在表单中列出来提交数据。
我试着问,而且我是有人知道我的代码问题。因为我尝试更新数据不起作用。 – kputri