Postingan lainnya
Menampilkan data berdasarkan id dari hasil query join codeigniter
Ceritanya saya mau menampilkan data nilai siswa dari dua tabel di database yaitu tabel siswa dan tabel nilai. Tabel siswa Tabel nilai
Pada page index saya hanya menampilkan data siswa saja. Page index
untuk menampilkan data siswa saya menggunakan query biasa untuk memanggil data
public function data_siswa() {
return $this->db->get('siswa')->result_array();
}
Lalu saya ingin ketika mengklik tombol 'Detail', detail nilai siswa yang terpilih ditampilkan. Page detail
untuk mamanggil data nilai saya gunakan query join
public function nilaijoin() {
$this->db->select('*');
$this->db->from('nilai');
$this->db->join('siswa', 'siswa.id_siswa = nilai.id_siswa', 'left');
$this->db->where('siswa.id_siswa');
return $this->db->get()->result();
}
adapun controllernya berikut ini
public function index() {
$data['siswa'] = $this->Welcome_model->data_siswa();
$this->load->view('tes/join', $data);
}
public function detail() {
$data['detailnilai'] = $this->Tes_model->nilaijoin();
$this->load->view('tes/detail', $data);
}
lalu untuk link dari tombol 'Detail' adalah sebagai berikut
<a href="<?php echo base_url(); ?>tes/detail/<?php echo $nil['id_siswa']; ?>" class="btn btn-primary btn-sm">Detail</a>
problemnya saat tombol detail di klik, maka semua detail nilai tampil dan tidak berdasarkan id siswa yang dipilih. Mohon bantuannya.
3 Jawaban:
URLnya = tes/detail/{id_siswa} tapi di controller nggak di ambil IDnya berapa, sama nggak dikirim juga ke model untuk query wherenya.
jadi seharusnya controller seperti ini :
<pre> public funtion detail($id){ $data['detailnilai'] = $this->Tes_model->nilaijoin($id); $this->load->view('tes/detail', $data); } </pre>
Sedangkan pada model jadi seperti ini
<pre> public function nilaijoin($id) { $this->db->select('*'); $this->db->from('nilai'); $this->db->join('siswa', 'siswa.id_siswa = nilai.id_siswa', 'left'); $this->db->where('siswa.id_siswa', $id); return $this->db->get()->result(); } </pre>
Tanggapan
mantap terima kasih bang .. :D
Untuk modelnya kayak gini kak <pre> function nilaijoin($id){ $this->db->select(); $this->db->from('siswa as b'); $this->db->join('nilai as a', 'a.id_siswa = b.id_siswa'); $this->db->where('b.id_siswa',$id); $result= $this->db->get(); return $result; } </pre>
dan controllernya: <pre> <?php defined('BASEPATH') OR exit('No direct script access allowed');
class Tes extends CI_Controller{
function detail($id){ $data['detailnilai'] = $this->Tes_model->nilaijoin($id); $this->load->view('tes/detail', $data); } } </pre>
coba aja kak dipanggil di url dulu, ga usah dibuttonnya: misal: localhost/folder/tes/detail/1
<div>selamat siang boleh liat viewnya ga ya ?</div>