Filter bulan dan tahun di codeigniter tidak sesuai

script controllernya seperti ini

public function index()
	{
		  $data['bulan'] = array('01' => 'January', '02' => 'February', '03' => 'March', '04' => 'April', '05' => 'May', '06' => 'June', '07' => 'July', '08' => 'August', '09' => 'September', '10' => 'October', '11' => 'November', '12' => 'December');
		  $data['option_tahun'] = $this->m_packing->option_tahun();
		  $data['title'] = "Filter";
		  $data['region'] = $this->m_region->get_data_filter('region')->result();
		  $data['country'] = $this->m_country->get_data_filter('country')->result();
		  $data['customer'] = $this->m_customer->get_data_filter('customer')->result();

		  $adata = array();
		  if ( $this->input->get('bulan') <> '') {
			$adata['MONTH(tanggal)'] = $this->input->get('bulan');
	  	}

	  	if ( $this->input->get('option_tahun') <> '') {
			$adata['YEAR(tanggal)'] = $this->input->get('option_tahun');
 		 }

		  if ( $this->input->get('customer') <> '') {
			$adata['buyer'] = $this->input->get('customer');
 		 }
		 
		$data['exp'] = $this->m_packing->get_data('exp', $adata);

        
		  // Load view dan kirim data
		  $this->load->view('packing/dashboard', $data);
		
	}
avatar ervianhusyaeni
@ervianhusyaeni

1 Kontribusi 0 Poin

Diperbarui 9 bulan yang lalu

Tanggapan

Halo jangan cuma perlihatan kode ya. Dijelaskan: apa yang kamu mau dan apa yang sekarang terjadi dengan kode yang ada

jadi saya mau menampilkan data berdasarkan filtert periode bulan dan tahun sebelumnya, data yang tampil di tabel index berdasarkan tahun sekarang (2024), setelah saya coba load data berdasarkan filter bulan dan tahun tersebut tidak muncul dan tetap tabelnya berdasarkan tahun sekarang?

1 Jawaban:

public function index()
{
  $data['bulan'] = array('01' => 'January', '02' => 'February', '03' => 'March', '04' => 'April', '05' => 'May', '06' => 'June', '07' => 'July', '08' => 'August', '09' => 'September', '10' => 'October', '11' => 'November', '12' => 'December');
  $data['option_tahun'] = $this->m_packing->option_tahun();
  $data['title'] = "Filter";
  $data['region'] = $this->m_region->get_data_filter('region')->result();
  $data['country'] = $this->m_country->get_data_filter('country')->result();
  $data['customer'] = $this->m_customer->get_data_filter('customer')->result();

  $bulan = (int) $this->input->get('bulan');
  $tahun = (int) $this->input->get('option_tahun');

  if (!empty($bulan) && $bulan < 1 || $bulan > 12) {
    // Tampilkan pesan error bulan tidak valid
    return;
  }

  if (!empty($tahun) && !is_numeric($tahun)) {
    // Tampilkan pesan error tahun tidak valid
    return;
  }

  $where = array();

  if (!empty($bulan)) {
    $where['MONTH(tanggal)'] = $bulan;
  }

  if (!empty($tahun)) {
    $where['YEAR(tanggal)'] = $tahun;
  }

  $data['exp'] = $this->m_packing->get_data('exp', $where);

  // Load view dan kirim data
  $this->load->view('packing/dashboard', $data);
}

Perubahan ini memastikan nilai filter diproses dengan benar, WHERE clause dibuat dengan tepat, dan data diambil dengan filter yang diterapkan.

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 9 bulan yang lalu

Login untuk ikut Jawaban