Postingan lainnya
Insert data di codeigniter
Permisi mau bertanya soal insert data di codeigniter. Data no_antrian ini pengennya bisa nambah kalau button ambil antrian anda diklik. Lalu menuju halaman berikutnya yang bisa menampilkan no_antrian yang diambil
Model
public function getAntrianUmum()
{
$id_user = $this->session->userdata("session_id");
$tanggal = date("Y-m-d");
$sql = "SELECT MAX(no_antrian) AS kode FROM tb_periksa WHERE tanggal=CURRENT_DATE() AND id_poli = 1";
$data = $this->db->query($sql);
$tambah = $data['kode'];
$antrian = (int) $tambah;
$antrian++;
$query = "INSERT INTO tb_periksa(id_periksa, id_user, id_poli, tanggal, no_antrian, id_status_periksa, id_status_obat)
VALUES ('', '$id_user', '1', '$tanggal', '$antrian', '1','1')";
return $this->db->query($query);
}
Controller
public function Antrian()
{
$data['jumlahAUmum'] = $this->Dashboard_model->getAntrianUmum();
$this->template->tampil('Pasien/pAntrian_view', $data);
}
View
<tr>
<td> </td>
<td align="center"><h1>A - <?php echo $umum[0]['ambil']; ?></h1></td>
<td> </td>
</tr>
Ketika dicoba no_antrian nya yang masuk 1 terus tidak bisa bertambah, apa ada yang salah ya di codingnya? Terima kasih
2 Jawaban:
<img src='https://i.ibb.co/zmHFG1t/test.png'>
Bisa Pakai Count Ka,
Jadi misal di tabel antrian sudah masuk 1 antrian..
Maka tinggal SELECT COUNT(field name) AS kode FROM table_xxxx
Boleh juga di kasih casting biar aman aja...
Kemudian di halaman selanjutnya Count yang di beri alias sebagai kode, ditambahkan satu...
Kalau pakai max juga bisa, tapi baiknya diberi primary key dan auto increment. dan pastinya sudah ada data yang masuk tentunya...
<pre> <?php // $x = $this->m_antrian->get_antrian_umum(); // $x = null; $x = array( 'antrian_id' => 10 ); echo (int)$x; ?> </pre>
Kalau belum berhasil juga. coba dicek var $x nya itu tipe kembalian nya apa ka...
Passing data ke view juga perlu diperhatikan ka..
Kalo aku biasanya pake array..
<pre> <?php // $x = null; $dataset = array( 'antrian_id' => 10 ); $this->load->view('v_antrian', $dataset); ?> </pre>
Nanti di view langsung aja tampilin $antrian_id...
Semoga membantu ^_^..
Tanggapan
jadi ditambah 1nya di view? no_antrian ini masuk field kalau di database, sudah ada primary nya di tabel
Iya ka, itu berlaku bila ada user lain yang ambil antrian..
Coba perhatikan kodingan kaka.
Gak ada yang salah si kayaknya, cuman return nya itu loh
<pre> public function getAntrianUmum() { $id_user = $this->session->userdata("session_id"); $tanggal = date("Y-m-d"); $sql = "SELECT MAX(no_antrian) AS kode FROM tb_periksa WHERE tanggal=CURRENT_DATE() AND id_poli = 1"; $data = $this->db->query($sql); $tambah = $data['kode']; $antrian = (int) $tambah; $antrian++; $query = "INSERT INTO tb_periksa(id_periksa, id_user, id_poli, tanggal, no_antrian, id_status_periksa, id_status_obat) VALUES ('', '$id_user', '1', '$tanggal', '$antrian', '1','1')"; return $this->db->query($query); //return nya result pas insert. Bukan pas select. //kalau return nya pas insert, kan hasilnya array seperti : affected_rows(), fetch_array(), dll } </pre>
Trus kalo return nya sepertinya tipe kembalian array...
Disitu letak kesalahan nya kak..
Kalau yang di return itu $antrian, nanti kan muncul nomor antrian nya ka.
Dan di return $this->db->query($query);
Terakhir mengeksekusi query string
$query = "INSERT INTO tb_periksa(id_periksa, id_user, id_poli, tanggal, no_antrian, id_status_periksa, id_status_obat) VALUES ('', '$id_user', '1', '$tanggal', '$antrian', '1','1')";
Berarti result dari query string terakhir itu yang dikembalikan.. sedangkan kembalian dari return yang di eksekusi query string terakhir kan insert. Bukan select..
Cuma masalah pengembalian ka..
Coba nanti di vardump aja tipe kembaliannya..
Pasti ketemu ka ^_^
Tanggapan
oke kak terima kasih, di coca cek2 lagi. maklum newbie heheh