Kesalahan ketika insert data, harusnya single row malah menjadi duplicate entry

Assalaamu'alaikum para suhu dan kakak² programer disini. Mohon maaf sebelumnya, izin bertanya lagi, kenapa ketika saya menginput data siswa, justru malah terjadi duplicate insert alias menjadi tersimpan data menjadi beberapa baris sekaligus. Padahal seharusnya hanya 1 baris saja. Hal ini terjadi ketika data SPP nya terdapat lebih dari satu baris data. Jadi ketika data SPP terdapat 3 baris data, secara otomatis, ketika saya insert data di halaman data siswa Siswa, data siswanya pun ikut tertambah menjadi 3 baris data juga. Mohon bantuannya para suhu dan kakak-kakak disini hehe. Berikut syntax dan screenshotnya

Ini script Modelsiswa_admin

 <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Modelsiswa_admin extends CI_Model
{

	private $t_siswa = "t_siswa";
	private $v_siswa = "v_siswa_join_kelas_spp";

	public $nisn;
	public $nis;
	public $nama;
	public $id_kelas;
	public $alamat;
	public $no_telepon;
	public $id_spp;

	public function getAllSiswa()
	{
		return $this->db->get($this->v_siswa)->result();
	}

	public function getByIdSiswa($id)
	{
		return $this->db->get_where($this->v_siswa, ["nisn" => $id])->row();
	}

	public function insertSiswa()
	{
		$post = $this->input->post();
		$this->nisn = $post["nisn"];
		$this->nis = $post["nis"];
		$this->nama = $post["nama"];
		$this->id_kelas = $post["kelas"];
		$this->alamat = $post["alamat"];
		$this->no_telepon = $post["no_telepon"];
		$this->id_spp = $post["spp"];

		return $this->db->insert($this->t_siswa, $this);
	}

	public function updateSiswa()
	{
		$post = $this->input->post();
		$this->id_Siswa = $post["id"];
		$this->username = $post["username"];
		$this->password = $post["password"];
		$this->nama_Siswa = $post["nama_Siswa"];
		$this->level = $post["level"];

		return $this->db->update($this->t_siswa, $this, array('id_Siswa' => $post['id']));
	}

	public function deleteSiswa($id)
	{
		return $this->db->delete($this->v_siswa, array('id_Siswa' => $id));
	}

}

?>

Ini script Modelspp_admin (barangkali ada yang salah disini, maka saya share)

 <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Modelspp_admin extends CI_Model
{

	private $t_spp = "t_spp";

	public $id_spp;
	public $tahun;
	public $nominal;

	public function getAllSpp()
	{
		return $this->db->get($this->t_spp)->result();
	}

	public function getByIdSpp($id)
	{
		return $this->db->get_where($this->t_spp, ["id_spp" => $id])->row();
	}

	public function insertSpp()
	{
		$post = $this->input->post();
		$this->id_spp = $post["id_spp"];
		$this->tahun = $post["tahun"];
		$this->nominal = $post["nominal"];

		return $this->db->insert($this->t_spp, $this);
	}

	public function updateSpp()
	{
		$post = $this->input->post();
		$this->id_spp = $post["id"];
		$this->tahun = $post["tahun"];
		$this->nominal = $post["nominal"];

		return $this->db->update($this->t_spp, $this, array('id_spp' => $post['id']));
	}

	public function deleteSpp($id)
	{
		return $this->db->delete($this->t_spp, array('id_spp' => $id));
	}

}

?>

Ini script Controller Admin

 <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Admin extends CI_Controller
{

	public function __construct()
	{
		parent::__construct();
		$this->load->model("Modelkelas_admin");
		$this->load->model("Modelpetugas_admin");
		$this->load->model("Modelspp_admin");
		$this->load->model("Modelsiswa_admin");
		$this->load->model("Modelpembayaran_admin");
		$this->load->library('form_validation');
	}

	public function index()
	{
		$this->template->load('halaman_master', 'template/_partials/dashboard');
	}

	//CONTROLLER CRUD KELAS
	public function dataKelas()
	{
		$data["tampilkankelas"] = $this->Modelkelas_admin->getAllKelas();
		$this->template->load('halaman_master', 'template/_partials/data_kelas', $data);
	}

	public function tambahKelas()
	{
		$kelas = $this->Modelkelas_admin;
		$validation = $this->form_validation;
		$validation->set_rules('nama_kelas', 'Nama Kelas', 'required|is_unique[t_kelas.nama_kelas]', array('required' => 'Nama Kelas tidak boleh kosong', 'is_unique' => 'Nama Kelas sudah ada di database'));
		$validation->set_rules('kompetensi_keahlian', 'Kompetensi Keahlian', 'required', array('required' => 'Kompetensi Keahlian tidak boleh kosong'));

		if ($validation->run()==FALSE)
		{
			$this->dataKelas();
		}else{
			$kelas->insertKelas();
			$this->session->set_flashdata('success', 'Data berhasil di tambahkan!');
			redirect ('Admin/dataKelas');
		}
	}

	public function editKelas($id = null)
	{
		if (!isset($id)) redirect('admin/dataKelas');

		$kelas = $this->Modelkelas_admin;

		$data["kelas"] = $kelas->getByIdKelas($id);
		if (!$data["kelas"]) show_404();

		$validation = $this->form_validation;
		$validation->set_rules('nama_kelas', 'Nama Kelas', 'required', array('required' => 'Nama Kelas tidak boleh kosong'));
		$validation->set_rules('kompetensi_keahlian', 'Kompetensi Keahlian', 'required', array('required' => 'Kompetensi Keahlian tidak boleh kosong'));

		if ($validation->run() == FALSE)
		{
			$this->template->load('halaman_master', 'template/_partials/edit_kelas', $data);
		}else{
			$kelas->updateKelas();
			$this->session->set_flashdata('success', 'Data berhasil diubah');
			redirect ('Admin/dataKelas');
		}

	}

	public function hapusKelas($id = null)
	{
		if (!isset($id)) show_404();

		if ($this->Modelkelas_admin->deleteKelas($id))
		{
			redirect(site_url('Admin/dataKelas'));
		}
	}

	//CONTROLLER CRUD SPP
	public function dataSpp()
	{
		$data["tampilkanspp"] = $this->Modelspp_admin->getAllSpp();
		$this->template->load('halaman_master', 'template/_partials/data_spp', $data);
	}

	public function tambahSpp()
	{
		$spp = $this->Modelspp_admin;
		$validation = $this->form_validation;
		$validation->set_rules('tahun', 'Tahun', 'required|is_unique[t_spp.tahun]', array('required' => 'Tahun tidak boleh kosong', 'is_unique' => 'Tahun sudah ada di database'));
		$validation->set_rules('nominal', 'Nominal', 'required|numeric', array('required' => 'Nominal tidak boleh kosong', 'numeric' => 'Nominal harus berisi angka  '));

		if ($validation->run()==FALSE)
		{
			$this->dataSpp();
		}else{
			$spp->insertSpp();
			$this->session->set_flashdata('success', 'Data berhasil di tambahkan!');
			redirect ('Admin/dataSpp');
		}
		return $this->db->insert('t_siswa', $data);
	}

	public function editSpp($id = null)
	{
		if (!isset($id)) redirect('admin/dataspp');

		$spp = $this->Modelspp_admin;

		$data["spp"] = $spp->getByIdSpp($id);
		if (!$data["spp"]) show_404();

		$validation = $this->form_validation;
		$validation->set_rules('tahun', 'Tahun', 'required', array('required' => 'Tahun tidak boleh kosong'));
		$validation->set_rules('nominal', 'Nominal', 'required', array('required' => 'Nominal tidak boleh kosong'));

		if ($validation->run() == FALSE)
		{
			$this->template->load('halaman_master', 'template/_partials/edit_spp', $data);
		}else{
			$spp->updatespp();
			$this->session->set_flashdata('success', 'Data berhasil diubah');
			redirect ('Admin/dataspp');
		}

	}

	public function hapusSpp($id = null)
	{
		if (!isset($id)) show_404();

		if ($this->Modelspp_admin->deleteSpp($id));
		{
			redirect(site_url('Admin/dataSpp'));
		}
	}

	//CONTROLLER CRUD PETUGAS
	public function dataPetugas()
	{
		$data["tampilkanpetugas"] = $this->Modelpetugas_admin->getAllPetugas();
		$this->template->load('halaman_master', 'template/_partials/data_petugas', $data);
	}

	public function tambahPetugas()
	{
		$petugas = $this->Modelpetugas_admin;
		$validation = $this->form_validation;
		$validation->set_rules('username', 'Username', 'required|is_unique[t_petugas.username]', array('required' => 'Username tidak boleh kosong', 'is_unique' => 'Username sudah ada di database'));
		$validation->set_rules('password', 'Password', 'required', array('required' => 'Password tidak boleh kosong'));
		$validation->set_rules('nama_petugas', 'Nama Petugas', 'required|is_unique[t_petugas.nama_petugas]', array('required' => 'Nama Petugas tidak boleh kosong', 'is_unique' => 'Nama Petugas sudah ada di database'));
		$validation->set_rules('level', 'Level', 'required', array('required' => 'Level tidak boleh kosong'));

		if ($validation->run()==FALSE)
		{
			$this->dataPetugas();
		}else{
			$petugas->insertPetugas();
			$this->session->set_flashdata('success', 'Data berhasil di tambahkan!');
			redirect ('Admin/dataPetugas');
		}
	}

	public function editPetugas($id = null)
	{
		if (!isset($id)) redirect('Admin/dataPetugas');

		$petugas = $this->Modelpetugas_admin;

		$data["petugas"] = $petugas->getByIdPetugas($id);
		if (!$data["petugas"]) show_404();

		$validation = $this->form_validation;
		$validation->set_rules('username', 'Username', 'required', array('required' => 'Username tidak boleh kosong'));
		$validation->set_rules('password', 'Password', 'required', array('required' => 'Password tidak boleh kosong'));
		$validation->set_rules('nama_petugas', 'Nama Petugas', 'required', array('required' => 'Nama Petugas tidak boleh kosong'));
		$validation->set_rules('level', 'Level', 'required', array('required' => 'Level tidak boleh kosong'));

		if ($validation->run() == FALSE)
		{
			$this->template->load('halaman_master', 'template/_partials/edit_petugas', $data);
		}else{
			$petugas->updatePetugas();
			$this->session->set_flashdata('success', 'Data berhasil diubah');
			redirect ('Admin/dataPetugas');
		}

	}

	public function hapusPetugas($id = null)
	{
		if (!isset($id)) show_404();

		if ($this->Modelpetugas_admin->deletePetugas($id))
		{
			redirect(site_url('Admin/dataPetugas'));
		}
	}

	//CRUD DATA SISWA
	public function dataSiswa()
	{
		$data["tampilkansiswa"] = $this->Modelsiswa_admin->getAllSiswa();
		$data["tampilkankelas"] = $this->Modelkelas_admin->getAllKelas();
		$data["tampilkanspp"] = $this->Modelspp_admin->getAllSpp();
		$this->template->load('halaman_master', 'template/_partials/data_siswa', $data);
	}

	public function tambahSiswa()
	{
		$siswa = $this->Modelsiswa_admin;
		$validation = $this->form_validation;
		$validation->set_rules('nisn', 'NISN', 'required|is_unique[t_siswa.nisn]', array('required' => 'NISN tidak boleh kosong', 'is_unique' => 'NISN sudah ada di dalam database'));
		$validation->set_rules('nis', 'NIS', 'required|is_unique[t_siswa.nis]', array('required' => 'NIS tidak boleh kosong', 'is_unique' => 'NIS sudah ada di dalam database'));
		$validation->set_rules('nama', 'Nama', 'required', array('required' => 'Nama Siswa tidak boleh kosong'));
		$validation->set_rules('kelas', 'Kelas', 'required', array('required' => 'Kelas tidak boleh kosong'));
		$validation->set_rules('alamat', 'Alamat', 'required', array('required' => 'Alamat tidak boleh kosong'));
		$validation->set_rules('no_telepon', 'No Telepon', 'required', array('required' => 'No Telepon tidak boleh kosong'));
		$validation->set_rules('spp', 'SPP', 'required', array('required' => 'Tahun SPP tidak boleh kosong'));

		if ($validation->run() == FALSE)
		{
			$this->dataSiswa();
		}else{
			$siswa->insertSiswa();
			$this->session->set_flashdata('success', 'Data berhasil ditambahkan!');
			redirect ('Admin/dataSiswa');
		}
	}

	//CRUD DATA TRANSAKSI
	public function dataTransaksi()
	{
		$data["tampilkanpembayaran"] = $this->Modelpembayaran_admin->getAllTransaksi();
		$data["tampilkansiswa"] = $this->Modelsiswa_admin->getAllSiswa();
		$this->template->load('halaman_master', 'template/_partials/data_pembayaran', $data);
	}

	public function autoComplete()
	{
		$nisn = $_GET['nisn'];
		$this->db->where('nisn', $nisn);
		$query = $this->Modelsiswa_admin->getAllSiswa();
		echo json_encode($query);
	}

}

Ini script View data_siswa

 <?php if ($this->session->flashdata('success')):?>
	<div class="alert alert-success" role="alert">
		<?php echo $this->session->flashdata('success');?>
	</div>
<?php endif;?>

<?php if (validation_errors()) :?>
<div class="alert alert-danger">
	<?php echo validation_errors();?>
</div>
<?php endif;?>

<div class="card mb-3">
	<div class="card-header">
		<b class="text-success">Form Data Siswa</b>
	</div>
	<div class="card-body">
		<form action="<?php echo site_url('Admin/tambahSiswa')?>" method="POST" enctype="multipart/form-data">
			<div class="form-group">
				<label>NISN</label>
				<input class="form-control" type="number" name="nisn"  placeholder="Masukkan NISN"/>
			</div>
			<div class="form-group">
				<label>NIS</label>
				<input class="form-control" type="number" name="nis"  placeholder="Masukkan NIS"/>
			</div>
			<div class="form-group">
				<label>Nama</label>
				<input class="form-control" type="text" name="nama"  placeholder="Masukkan Nama Siswa"/>
			</div>
			<div class="form-group">
				<label>Kelas</label>
				<select name="kelas" class="form-control">
					<option value="">Pilih Kelas Siswa</option>
					<?php foreach ($tampilkankelas as $kelas) :?>
					<option value="<?php echo $kelas->id_kelas?>"><?php echo $kelas->nama_kelas?></option>
					<?php endforeach;?>
				</select>
			</div>
			<div class="form-group">
				<label>Alamat</label>
				<textarea class="form-control" name="alamat" placeholder="Masukkan Alamat Siswa"></textarea>
			</div>
			<div class="form-group">
				<label>No. Telepon</label>
				<input class="form-control" type="numeric" name="no_telepon" placeholder="Masukkan nomor telepon">
			</div>
			<div class="form-group">
				<label>Tahun SPP</label>
				<select name="spp" class="form-control">
					<option value="">Pilih Tahun SPP</option>
					<?php foreach ($tampilkanspp as $spp) :?>
					<option value="<?php echo $spp->id_spp?>"><?php echo $spp->tahun?></option>
					<?php endforeach;?>
				</select>
			</div>
			<input class="btn btn-success" type="submit" name="btn" value="Simpan"/>
		</form>
	</div>
</div>

<div class="card mb-3">
	<div class="card-header">
		<b class="text-primary">Data Siswa</b>
	</div>
    <div class="card-body">
        <div class="table-responsive">
        	<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
            	<thead>
                	<tr>
                		<th>NISN</th>
                		<th>NIS</th>
                		<th>Nama</th>
               		<th>Nama Kelas</th>
               	 	<th>Alamat</th>
               		<th>No. Telepon</th>
               		<th>Tahun SPP</th>
               		<th>Aksi</th>
                </tr>
             </thead>
             <tbody>

                	<?php foreach ($tampilkansiswa as $siswa):?>

                	<tr>
                		<td><?php echo $siswa->nisn?></td>
                		<td><?php echo $siswa->nis?></td>
                		<td><?php echo $siswa->nama?></td>
                		<td><?php echo $siswa->nama_kelas?></td>
                		<td><?php echo $siswa->alamat?></td>
                		<td><?php echo $siswa->no_telepon?></td>
                		<td><?php echo $siswa->tahun_spp?></td>
                		<td>
                			<a href="<?php echo site_url('Admin/editSiswa/'.$siswa->nisn)?>" class="btn btn-small text-primary"><i class="fas fa-edit"></i> Edit</a>
                			<a href="#" onclick="deleteConfirm('<?php echo site_url('Admin/hapusSiswa/'.$siswa->nisn) ?>')" class="btn btn-small text-danger"><i class="fas fa-trash"></i> Hapus</a>
										</td>
                	</tr>

                	<?php endforeach;?>

         			</tbody>
        	</table>
		</div>
	</div>
</div>

Berikut screenshotnya

Ini ketika data sppnya masih sebaris

Dan ini data siswanya pun normal saja ketika saya insert, dia hanya tertambah satu baris saja.

Ini ketika data spp nya menjadi dua baris

Dan jengjeng... Datanya menjadi dua baris hadehhhh....

Ini tabel siswanya

Dan ini view siswanya

Terima kasih.

avatar daffaadillahzen
@daffaadillahzen

6 Kontribusi 0 Poin

Dipost 3 tahun yang lalu

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban