Hi everyone, i new in codeigniter and i have problem with my code, i create CRUD aplication with Codeigniter 3 and these my codes:
my table:
this is my controller:
this is my model:
this is my view:
siswa_form
siswa_list
my problem is , i want to update nis data where nis is primary key, i always failed to update it, how i can update this nis ?
thank you,
Best regards.
my table:
Code:
CREATE TABLE `siswa` (
`nis` varchar(15) NOT NULL,
`nama` varchar(30) NOT NULL,
`jkel` char(1) NOT NULL,
`active` char(1) NOT NULL
ALTER TABLE `siswa`
ADD PRIMARY KEY (`nis`);PHP Code:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Siswa extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('Siswa_model');
$this->load->library('form_validation');
}
public function index()
{
$q = urldecode($this->input->get('q', TRUE));
$start = intval($this->input->get('start'));
if ($q <> '') {
$config['base_url'] = base_url() . 'siswa/index.html?q=' . urlencode($q);
$config['first_url'] = base_url() . 'siswa/index.html?q=' . urlencode($q);
} else {
$config['base_url'] = base_url() . 'siswa/index.html';
$config['first_url'] = base_url() . 'siswa/index.html';
}
$config['per_page'] = 10;
$config['page_query_string'] = TRUE;
$config['total_rows'] = $this->Siswa_model->total_rows($q);
$siswa = $this->Siswa_model->get_limit_data($config['per_page'], $start, $q);
$this->load->library('pagination');
$this->pagination->initialize($config);
$data = array(
'siswa_data' => $siswa,
'q' => $q,
'pagination' => $this->pagination->create_links(),
'total_rows' => $config['total_rows'],
'start' => $start,
);
$this->load->view('siswa/siswa_list', $data);
}
public function read($id)
{
$row = $this->Siswa_model->get_by_id($id);
if ($row) {
$data = array(
'nis' => $row->nis,
'nama' => $row->nama,
'jkel' => $row->jkel,
'active' => $row->active,
);
$this->load->view('siswa/siswa_read', $data);
} else {
$this->session->set_flashdata('message', 'Record Not Found');
redirect(site_url('siswa'));
}
}
public function create()
{
$data = array(
'button' => 'Create',
'action' => site_url('siswa/create_action'),
'nis' => set_value('nis'),
'nama' => set_value('nama'),
'jkel' => set_value('jkel'),
'active' => set_value('active')
);
$this->load->view('siswa/siswa_form', $data);
}
public function create_action()
{
$this->_rules();
if ($this->form_validation->run() == FALSE) {
$this->create();
} else {
$data = array(
'nis' => $this->input->post('nis',TRUE),
'nama' => $this->input->post('nama',TRUE),
'jkel' => $this->input->post('jkel',TRUE),
'active' => $this->input->post('active',TRUE),
);
$this->Siswa_model->insert($data);
$this->session->set_flashdata('message', 'Create Record Success');
redirect(site_url('siswa'));
}
}
public function update($id)
{
$row = $this->Siswa_model->get_by_id($id);
if ($row) {
$data = array(
'button' => 'Update',
'action' => site_url('siswa/update_action'),
'nis' => set_value('nis', $row->nis),
'nama' => set_value('nama', $row->nama),
'jkel' => set_value('jkel', $row->jkel),
'active' => set_value('active', $row->active),
);
$this->load->view('siswa/siswa_form', $data);
} else {
$this->session->set_flashdata('message', 'Record Not Found');
redirect(site_url('siswa'));
}
}
public function update_action()
{
$this->_rules();
if ($this->form_validation->run() == FALSE) {
$this->update($this->input->post('nis', TRUE));
} else {
$data = array(
'nis' => $this->input->post('nis',TRUE),
'nama' => $this->input->post('nama',TRUE),
'jkel' => $this->input->post('jkel',TRUE),
'active' => $this->input->post('active',TRUE),
);
$this->Siswa_model->update($this->input->post('nis', TRUE), $data);
$this->session->set_flashdata('message', 'Update Record Success');
redirect(site_url('siswa'));
}
}
public function delete($id)
{
$row = $this->Siswa_model->get_by_id($id);
if ($row) {
$this->Siswa_model->delete($id);
$this->session->set_flashdata('message', 'Delete Record Success');
redirect(site_url('siswa'));
} else {
$this->session->set_flashdata('message', 'Record Not Found');
redirect(site_url('siswa'));
}
}
public function _rules()
{
$this->form_validation->set_rules('nis', 'nis', 'trim|required');
$this->form_validation->set_rules('nama', 'nama', 'trim|required');
$this->form_validation->set_rules('jkel', 'jkel', 'trim|required');
$this->form_validation->set_rules('active', 'active', 'trim|required');
//$this->form_validation->set_rules('nis', 'nis', 'trim');
$this->form_validation->set_error_delimiters('<span class="text-danger">', '</span>');
}
}
this is my model:
PHP Code:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Siswa_model extends CI_Model
{
public $table = 'siswa';
public $id = 'nis';
public $order = 'DESC';
function __construct()
{
parent::__construct();
}
// get all
function get_all()
{
$this->db->order_by($this->id, $this->order);
return $this->db->get($this->table)->result();
}
// get data by id
function get_by_id($id)
{
$this->db->where($this->id, $id);
return $this->db->get($this->table)->row();
}
// get total rows
function total_rows($q = NULL) {
$this->db->like('nis', $q);
$this->db->or_like('nama', $q);
$this->db->or_like('jkel', $q);
$this->db->or_like('active', $q);
$this->db->from($this->table);
return $this->db->count_all_results();
}
// get data with limit and search
function get_limit_data($limit, $start = 0, $q = NULL) {
$this->db->order_by($this->id, $this->order);
$this->db->like('nis', $q);
$this->db->or_like('nama', $q);
$this->db->or_like('jkel', $q);
$this->db->or_like('active', $q);
$this->db->limit($limit, $start);
return $this->db->get($this->table)->result();
}
// insert data
function insert($data)
{
$this->db->insert($this->table, $data);
}
// update data
function update($id, $data)
{
$this->db->update($this->table, $data);
}
// delete data
function delete($id)
{
$this->db->where($this->id, $id);
$this->db->delete($this->table);
}
}
this is my view:
siswa_form
Code:
<!doctype html>
<html>
<head>
<title>Siswa Form</title>
<link rel="stylesheet" href="<?php echo base_url('assets/bootstrap/css/bootstrap.min.css') ?>"/>
<style>
body{
padding: 15px;
}
</style>
</head>
<body>
<h2 style="margin-top:0px">Siswa <?php echo $button ?></h2>
<form action="<?php echo $action; ?>" method="post">
<div class="form-group">
<label for="varchar">NIS <?php echo form_error('nis') ?></label>
<input type="text" class="form-control" name="nis" id="nis" placeholder="Nis" value="<?php echo $nis; ?>" />
</div>
<div class="form-group">
<label for="varchar">Nama <?php echo form_error('nama') ?></label>
<input type="text" class="form-control" name="nama" id="nama" placeholder="Nama" value="<?php echo $nama; ?>" />
</div>
<div class="form-group">
<label for="char">Jkel <?php echo form_error('jkel') ?></label>
<input type="text" class="form-control" name="jkel" id="jkel" placeholder="Jkel" value="<?php echo $jkel; ?>" />
</div>
<div class="form-group">
<label for="char">Active <?php echo form_error('active') ?></label>
<input type="text" class="form-control" name="active" id="active" placeholder="Active" value="<?php echo $active; ?>" />
</div>
<!-- <input type="hidden" name="nis" value="<?php// echo $nis; ?>" /> -->
<button type="submit" class="btn btn-primary"><?php echo $button ?></button>
<a href="<?php echo site_url('siswa') ?>" class="btn btn-default">Cancel</a>
</form>
</body>
</html>siswa_list
Code:
<!doctype html>
<html>
<head>
<title>Aditya BN</title>
<link rel="stylesheet" href="<?php echo base_url('assets/bootstrap/css/bootstrap.min.css') ?>"/>
<style>
body{
padding: 15px;
}
</style>
</head>
<body>
<h2 style="margin-top:0px">Siswa List</h2>
<div class="row" style="margin-bottom: 10px">
<div class="col-md-4">
<?php echo anchor(site_url('siswa/create'),'Create', 'class="btn btn-primary"'); ?>
</div>
<div class="col-md-4 text-center">
<div style="margin-top: 8px" id="message">
<?php echo $this->session->userdata('message') <> '' ? $this->session->userdata('message') : ''; ?>
</div>
</div>
<div class="col-md-1 text-right">
</div>
<div class="col-md-3 text-right">
<form action="<?php echo site_url('siswa/index'); ?>" class="form-inline" method="get">
<div class="input-group">
<input type="text" class="form-control" name="q" value="<?php echo $q; ?>">
<span class="input-group-btn">
<?php
if ($q <> '')
{
?>
<a href="<?php echo site_url('siswa'); ?>" class="btn btn-default">Reset</a>
<?php
}
?>
<button class="btn btn-primary" type="submit">Search</button>
</span>
</div>
</form>
</div>
</div>
<table class="table table-bordered" style="margin-bottom: 10px">
<tr>
<th>No</th>
<th>NIS</th>
<th>Nama</th>
<th>Jkel</th>
<th>Active</th>
<th>Action</th>
</tr><?php
foreach ($siswa_data as $siswa)
{
?>
<tr>
<td width="80px"><?php echo ++$start ?></td>
<td><?php echo $siswa->nis ?></td>
<td><?php echo $siswa->nama ?></td>
<td><?php echo $siswa->jkel ?></td>
<td><?php echo $siswa->active ?></td>
<td style="text-align:center" width="200px">
<?php
echo anchor(site_url('siswa/read/'.$siswa->nis),'Read');
echo ' | ';
echo anchor(site_url('siswa/update/'.$siswa->nis),'Update');
echo ' | ';
echo anchor(site_url('siswa/delete/'.$siswa->nis),'Delete','onclick="javasciprt: return confirm(\'Are You Sure ?\')"');
?>
</td>
</tr>
<?php
}
?>
</table>
<div class="row">
<div class="col-md-6">
<a href="#" class="btn btn-primary">Total Record : <?php echo $total_rows ?></a>
</div>
<div class="col-md-6 text-right">
<?php echo $pagination ?>
</div>
</div>
</body>
</html>thank you,
Best regards.