Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
Menampilkan data berdasarkan login di codeigniter
Permisi temen" saya mau tanya , saya punya 4 table , nama tabelnya : tbl_prestasi, tbl_mahasiswa, tbl_tingkat_prestasi dan tbl_jenis_prestasi,
Nah saaya mau nampilin data dari tbl_prestasi berdsarakan user yang login , saya pake codeigniter. , mohon pencerahannya
Jadi data yang muncul nanti hanya data dari user yang login saja
3 Jawaban:
<div>Controller nya <br><br></div><pre>//Start Ajax// public function ajax_list() { $this->load->helper('url');
$list = $this-&gt;data_prestasi_model_for_mhs-&gt;get_datatables();
$data = array();
$no = $_POST['start'];
foreach ($list as $mhs) {
$no++;
$row = array();
$row[] = '&lt;input type="checkbox" class="data-check" value="'.$mhs-&gt;id_prestasi.'"&gt;';
//add html for action
$row[] = '&lt;a class="btn btn-sm btn-primary" href="javascript:void(0)" title="Edit" onclick="edit_person('."'".$mhs-&gt;id_prestasi."'".')"&gt;&lt;i class="fas fa-pencil-alt"&gt;&lt;/i&gt; &lt;/a&gt;
&lt;a class="btn btn-sm btn-danger" href="javascript:void(0)" title="Hapus" onclick="delete_person('."'".$mhs-&gt;id_prestasi."'".')"&gt;&lt;i class="fas fa-recycle"&gt;&lt;/i&gt; &lt;/a&gt;';
if($mhs-&gt;file_sertifikat)
$row[] = '&lt;a href="'.base_url('upload/file_sertifikat/'.$mhs-&gt;file_sertifikat).'" target="_blank"&gt;&lt;img src="'.base_url('upload/file_sertifikat/'.$mhs-&gt;file_sertifikat).'" height="60" width="60" class="img-responsive" /&gt;&lt;/a&gt;';
else
$row[] = '&lt;a href="'.base_url('upload/file_sertifikat/no_file_available.png').'" target="_blank"&gt;&lt;img src="'.base_url('upload/file_sertifikat/no_file_available.png').'" height="60" width="60" class="img-responsive" /&gt;&lt;/a&gt;';
$row[] = $mhs-&gt;username;
$row[] = $mhs-&gt;namamahasiswa;
$row[] = $mhs-&gt;nm_tingkatprestasi;
$row[] = $mhs-&gt;nm_jenisprestasi;
$row[] = $mhs-&gt;nm_prestasi;
$row[] = $mhs-&gt;instansi_prestasi;
$row[] = $mhs-&gt;lokasi;
$row[] = $mhs-&gt;ket_kegiatan;
$row[] = $mhs-&gt;created;
$row[] = $mhs-&gt;updated;
$data[] = $row;
}
$output = array(
"draw" =&gt; $_POST['draw'],
"recordsTotal" =&gt; $this-&gt;data_prestasi_model_for_mhs-&gt;count_all(),
"recordsFiltered" =&gt; $this-&gt;data_prestasi_model_for_mhs-&gt;count_filtered(),
"data" =&gt; $data,
);
//output to json format
echo json_encode($output);
}
//End Ajax//</pre>
<div>Modelnya</div><pre>class Data_prestasi_model_for_mhs extends CI_Model {
// start datatables
var $table = 'tbl_prestasi_mahasiswa';
var $column_order = array(null, 'username', 'namamahasiswa', 'nm_tingkatprestasi', 'nm_jenisprestasi', 'nm_prestasi', 'instansi_prestasi', 'lokasi', 'ket_kegiatan', 'lama_kegiatan_sertifikat', 'file_sertifikat', 'created', 'updated'); //set column field database for datatable orderable
var $column_search = array('user_name', 'nm_lengkap_mahasiswa', 'nm_tingkat_prestasi', 'nm_jenis_prestasi'); //set column field database for datatable searchable
var $order = array('id_prestasi' =&gt; 'asc'); // default order
private function _get_datatables_query() {
$this-&gt;db-&gt;select('*, tbl_mahasiswa.user_name as username, tbl_mahasiswa.nm_lengkap_mahasiswa as namamahasiswa, tbl_tingkat_prestasi.nm_tingkat_prestasi as nm_tingkatprestasi, tbl_jenis_prestasi.nm_jenis_prestasi as nm_jenisprestasi');
$this-&gt;db-&gt;from('tbl_prestasi_mahasiswa');
$this-&gt;db-&gt;join('tbl_mahasiswa', 'tbl_prestasi_mahasiswa.id_mahasiswa = tbl_mahasiswa.id_mahasiswa', '');
$this-&gt;db-&gt;join('tbl_tingkat_prestasi', 'tbl_prestasi_mahasiswa.id_tingkat_prestasi = tbl_tingkat_prestasi.id_tingkat_prestasi');
$this-&gt;db-&gt;join('tbl_jenis_prestasi', 'tbl_prestasi_mahasiswa.id_jenis_prestasi = tbl_jenis_prestasi.id_jenis_prestasi');
$i = 0;
foreach ($this-&gt;column_search as $tenaga_pengajar) { // loop column
if(@$_POST['search']['value']) { // if datatable send POST for search
if($i===0) { // first loop
$this-&gt;db-&gt;group_start(); // open bracket. query Where with OR clause better with bracket. because maybe can combine with other WHERE with AND.
$this-&gt;db-&gt;like($tenaga_pengajar, $_POST['search']['value']);
} else {
$this-&gt;db-&gt;or_like($tenaga_pengajar, $_POST['search']['value']);
}
if(count($this-&gt;column_search) - 1 == $i) //last loop
$this-&gt;db-&gt;group_end(); //close bracket
}
$i++;
}
if(isset($_POST['order'])) { // here order processing
$this-&gt;db-&gt;order_by($this-&gt;column_order[$_POST['order']['0']['column']], $_POST['order']['0']['dir']);
} else if(isset($this-&gt;order)) {
$order = $this-&gt;order;
$this-&gt;db-&gt;order_by(key($order), $order[key($order)]);
}
}
function get_datatables() {
$this-&gt;_get_datatables_query();
if(@$_POST['length'] != -1)
$this-&gt;db-&gt;limit(@$_POST['length'], @$_POST['start']);
$query = $this-&gt;db-&gt;get();
return $query-&gt;result();
}
function count_filtered() {
$this-&gt;_get_datatables_query();
$query = $this-&gt;db-&gt;get();
return $query-&gt;num_rows();
}
function count_all() {
$this-&gt;db-&gt;from('tbl_prestasi_mahasiswa');
return $this-&gt;db-&gt;count_all_results();
}
// end datatables</pre>
<div>saya menggunakan jquery datatable. terimakasih mohon pencerahaannya</div>