Error di filter tanggal dengan between

Permisi, saya mau tanya masalah saat filter tanggal dengan between. Kasusnya saya punya 5 tabel, tabel 1&2 berelasi dengan tabel 3, tabel 3&4 berelasi dengan tabel 5. di tabel 5 kan ada atribut 'tgl', saya mau filter tanggalnya dengan between. saya coba di sqlyog lancar aja coding mysql nya, tp saat di jalannya di aplikasi ga bisa.

Muncul error kira kira begini. "There was an error running the query [You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AND tb_kegiatan.tgl BETWEEN '2019-07-01' AND '2019-07-31'' at line 1]" Terima Kasih.

ini bagian codingnya. Yang error hanya saat filter tanggal saja, kalau filter 'Kewenangan' atau 'Sub Kewenangan' lancar aja.

Ini Error

if (empty($_POST['masterkewenangan']) && empty($_POST['submasterkewenangan']))
    {
      $nama_kewenangan = "-";
      $nama_subkewenangan = "-";

      $tbkegiatan = "SELECT * FROM tb_kegiatan WHERE nip=$_GET[nip] AND tgl BETWEEN '$tglawal' AND '$tglakhir'";
      if(!$hasilkegiatan = $db->query($tbkegiatan)){
        die('There was an error running the query [' . $db->error . ']');
      }
      $jumlahkegiatan=$hasilkegiatan->num_rows;
    }

Ini Lancar

if (isset($_POST['masterkewenangan']) && empty($_POST['submasterkewenangan']))
    {
      $masterkewenangan = $_POST['masterkewenangan'];
      $nama_subkewenangan = "-";
      if ($masterkewenangan==1) { @$nama_kewenangan="KEWENANGAN KLINIS PK I"; }
      if ($masterkewenangan==2) { @$nama_kewenangan="KEWENANGAN KLINIS PK II"; }
      if ($masterkewenangan==3) { @$nama_kewenangan="KEWENANGAN KLINIS PK III"; }
      if ($masterkewenangan==4) { @$nama_kewenangan="KEWENANGAN KLINIS PK IV"; }
      if ($masterkewenangan==5) { @$nama_kewenangan="KEWENANGAN KLINIS PK V"; }

      $tbkegiatan = "SELECT * FROM tb_kegiatan JOIN tb_tindakan ON tb_kegiatan.id_tindakan=tb_tindakan.id_tindakan JOIN tb_kewenangan_klinis ON tb_tindakan.id_kewenangan=tb_kewenangan_klinis.id_kewenangan WHERE tb_kegiatan.nip=$_GET[nip] AND tb_kewenangan_klinis.id_kewenangan=$masterkewenangan AND tb_kegiatan.tgl BETWEEN '$tglawal' AND '$tglakhir'";
      if(!$hasilkegiatan = $db->query($tbkegiatan)){
        die('There was an error running the query [' . $db->error . ']');
      }
      $jumlahkegiatan=$hasilkegiatan->num_rows;
    }

Ini Juga Lancar

/*=======================FILTER SUB KEWENANGAN=======================*/
    elseif (isset($_POST['submasterkewenangan']) && empty($_POST['masterkewenangan']))
    {
      $nama_kewenangan = "-";
      $nama_subkewenangan = $_POST['submasterkewenangan'];
      if ($submasterkewenangan==1) { @$nama_subkewenangan="PENGELOLAAN PASIEN SECARA MANDIRI"; }
      if ($submasterkewenangan==2) { @$nama_subkewenangan="PENGELOLAAN PASIEN SECARA KOLABORASI"; }

      $tbkegiatan = "SELECT * FROM tb_kegiatan JOIN tb_tindakan ON tb_kegiatan.id_tindakan=tb_tindakan.id_tindakan JOIN tb_subkewenangan_klinis ON tb_tindakan.id_subkewenangan=tb_subkewenangan_klinis.id_subkewenangan WHERE tb_kegiatan.nip=$_GET[nip] AND tb_subkewenangan_klinis.id_subkewenangan=$submasterkewenangan AND tb_kegiatan.tgl BETWEEN '$tglawal' AND '$tglakhir'";
      if(!$hasilkegiatan = $db->query($tbkegiatan)){
        die('There was an error running the query [' . $db->error . ']');
      }
      $jumlahkegiatan=$hasilkegiatan->num_rows;
    }

/*=======================FILTER KEWENANGAN DAN SUB KEWENANGAN=======================*/
    elseif (isset($_POST['masterkewenangan']) && isset($_POST['submasterkewenangan']))
    {
      $nama_subkewenangan = $_POST['submasterkewenangan'];
      $masterkewenangan = $_POST['masterkewenangan'];
      if ($masterkewenangan==1) { @$nama_kewenangan="KEWENANGAN KLINIS PK I"; }
      if ($masterkewenangan==2) { @$nama_kewenangan="KEWENANGAN KLINIS PK II"; }
      if ($masterkewenangan==3) { @$nama_kewenangan="KEWENANGAN KLINIS PK III"; }
      if ($masterkewenangan==4) { @$nama_kewenangan="KEWENANGAN KLINIS PK IV"; }
      if ($masterkewenangan==5) { @$nama_kewenangan="KEWENANGAN KLINIS PK V"; }

      if ($submasterkewenangan==1) { @$nama_subkewenangan="PENGELOLAAN PASIEN SECARA MANDIRI"; }
      if ($submasterkewenangan==2) { @$nama_subkewenangan="PENGELOLAAN PASIEN SECARA KOLABORASI"; }
      $tbkegiatan = "SELECT * FROM tb_kegiatan JOIN tb_tindakan ON tb_kegiatan.id_tindakan=tb_tindakan.id_tindakan JOIN tb_kewenangan_klinis ON tb_tindakan.id_kewenangan=tb_kewenangan_klinis.id_kewenangan JOIN tb_subkewenangan_klinis ON tb_tindakan.id_subkewenangan=tb_subkewenangan_klinis.id_subkewenangan WHERE tb_kegiatan.nip=$_GET[nip] AND tb_kewenangan_klinis.id_kewenangan=$masterkewenangan AND tb_subkewenangan_klinis.id_subkewenangan=$submasterkewenangan AND tb_kegiatan.tgl BETWEEN '$tglawal' AND '$tglakhir'";
      if(!$hasilkegiatan = $db->query($tbkegiatan)){
        die('There was an error running the query [' . $db->error . ']');
      }
      $jumlahkegiatan=$hasilkegiatan->num_rows;
    }

  else
  {
    $tbkegiatan = "SELECT * FROM tb_kegiatan WHERE nip = $_GET[nip]";
    if(!$hasilkegiatan = $db->query($tbkegiatan)){
      die('There was an error running the query [' . $db->error . ']');
    }
    $jumlahkegiatan=$hasilkegiatan->num_rows;
  }

avatar riskyfreak
@riskyfreak

12 Kontribusi 5 Poin

Dipost 4 tahun yang lalu

Tanggapan

coba perhatikan lagi pertanyaan kamu sudah mudah dibaca atau belum, hapus yang tidak perlu, jangan tampilkan screenshot code yang tidak bisa dibaca, tampilkan yang relevan saja tidak perlu semuanya

maaf kalau pertanyaan nya susah dibaca, saya juga bingung mau nulis kya gimana. itu sudah sebagian code saja yg saya tampilkan, errornya cuma dibagian itu

kamu bisa tampilkan lengkap query yang errornya ngga? di atas cuma "'AND tb_kegiatan.tgl BETWEEN '2019-07-01' AND '2019-07-31'"

sudah dapat masalahnya mas, terimakasih atas tanggapan sebelumnya hehe

masalahnya cuma di if, saat saya memfilter tanggal beserta kewenangan ifnya sesuai. tapi saat saya memfilter hanya tanggal ifnya malah mengambil if filter tanggal dan kewenangan. jadi "if (empty($_POST['masterkewenangan']) && empty($_POST['submasterkewenangan']))" saya ganti menjadi "if ($_POST['masterkewenangan']=="Tidak Dipilih" && $_POST['submasterkewenangan']=="Tidak Dipilih")"

jawabannya silahkan ditulis di kolom jawaban ya dan ditandai sebagai jawaban yang benar, jadi kalau ada yang punya masalah sama, bisa refrensi bisa kesini

1 Jawaban:

Jawaban Terpilih

Permasalahan ada di saat pemilihan if. sebelumnya <pre> if (empty($_POST['masterkewenangan']) && empty($_POST['submasterkewenangan'])) </pre>

saya ganti jadi <pre> if ($_POST['masterkewenangan']=="Tidak Dipilih" && $_POST['submasterkewenangan']=="Tidak Dipilih") </pre>

avatar riskyfreak
@riskyfreak

12 Kontribusi 5 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban