Fungsi if tidak berjalan

seperti judul yg udah dikasih, saya punya controller dan model, dimana si modelnya ini tidak menjalankan perintahnya. ini controllernya

 function get_by_npm(){
		$npm=$this->input->post('npm');
		$nama=$this->input->post('nama');
		$data=$this->model_mahasiswa->get_npm2($npm,$nama)->result();
		echo json_encode($data);
   }

dan ini modelnya

 function get_npm2($npm, $nama){
		$sql = $this->db->query("select * from mahasiswa");
		if($npm)$sql.=" where npm = '$npm'";

					if($nama)$sql.=" where nama = '$nama'";
die('gagal');
		return $sql;
   }

jadi iintinya saya pengen bikin filter data berdasarkan npm dan nama, tapi jika salah satu tidak diisi akan tetap bisa menampilkan berdasarkan filter mana yg dipake. mohon pencerahannya abang abang hehe

avatar fitridewi
@fitridewi

26 Kontribusi 3 Poin

Diperbarui 5 tahun yang lalu

5 Jawaban:

<pre> function get_by_npm(){ $npm=$this-&gt;input-&gt;post('npm'); $nama=$this-&gt;input-&gt;post('nama'); $data=$this-&gt;model_mahasiswa-&gt;get_npm2($npm,$nama)-&gt;result(); echo json_encode($data); } </pre>

modelnya :

<pre> function get_npm2($npm, $nama){ $sql = $this-&gt;db-&gt;query("select * from mahasiswa"); if(isset($npm)){ $sql.=" where npm = '$npm'"; }else { $sql.=" where nama = '$nama'"; } return $sql;
} </pre>

avatar DennyKurniawan
@DennyKurniawan

62 Kontribusi 22 Poin

Dipost 5 tahun yang lalu

Tanggapan

@Denny tetep ga bisa bang

Coba cek update jawaban saya

kalo pake else dia gamau bang malah error, kalo diganti pake if baru bisa tapi ya tetep ngeselect emua gitu

coba di var_dump(); dulu ada yang dipost tidak

<pre> function get_by_npm(){

$post = $this-&gt;input-&gt;post();

if ($post['npm'] != null AND $post['nama'] != null){ echo "query npm & nama"; } else if ($post['nama'] != null){ echo "query nama"; } else if ($post['npm'] != null){ echo "query npm"; } else { echo "npm dan nama kosong"; } </pre>

Kalau berhasil di echo baru ganti echonya dengan query <pre> function get_by_npm(){

$post = $this-&gt;input-&gt;post();

if ($post['npm'] != null AND $post['nama'] != null){ $data = $this-&gt;db-&gt;query('SELECT * FROM MAHASISWA WHERE npm =$post["npm"] AND nama=$post["nama"]')-&gt;result(); } else if ($post['nama'] != null){ $data = $this-&gt;db-&gt;query('SELECT * FROM MAHASISWA WHERE nama=$post["nama"]')-&gt;result(); } else if ($post['npm'] != null){ $data = $this-&gt;db-&gt;query('SELECT * FROM MAHASISWA WHERE npm=$post["npm"]')-&gt;result(); } else { echo "npm dan nama kosong"; } echo json_encode($data); </pre>

avatar BudiGiponk
@BudiGiponk

7 Kontribusi 3 Poin

Dipost 5 tahun yang lalu

Tanggapan

tetap tidak bisa bang

tidak bisanya dmn? errornya apa biar di coba lagi, dan jangan mentah2 codenya di copy paste. sesuaikan dengan kerangka kode yang kamu buat

jadi mau diisi npm aja atau nama aja malah nampil semua

berarti logika if else kamu ada yang salah, di cek pelan2

eh ini aku baru paham bang, jadi bikin 2 function kan di modelnya? atau gimana?

tolong bantu cek yg kodingan saya dibawah bang.

ohiiya ini saya bikiin nya untuk di postman, jadi tidak ada view ya. ada beberapa yang menyarankan pake function berbeda, bisa saja memang lebih mudah seperti itu. tapi iini saya dimintanya di 1function saja.

avatar fitridewi
@fitridewi

26 Kontribusi 3 Poin

Dipost 5 tahun yang lalu

@BudiGiponk gini bukan sih bang?

tolong koreksi dong bang variabel2nya masih aga ga paham nih

controllernya <pre> function get_by_npm(){

	$npm=$this-&amp;gt;input-&amp;gt;post(&#039;npm&#039;);
	$nama=$this-&amp;gt;input-&amp;gt;post(&#039;nama&#039;);

if ($npm != null AND $nama != null){
	$sql = $this-&amp;gt;db-&amp;gt;query(&#039;SELECT * FROM MAHASISWA WHERE npm =&quot;$npm&quot; AND nama=&quot;$nama&quot;&#039;)-&amp;gt;result();
	}
	else if ($npm = null AND $nama != null)
	{
		$sql = $this-&amp;gt;db-&amp;gt;query(&#039;SELECT * FROM MAHASISWA WHERE nama=&quot;$nama&quot;&#039;)-&amp;gt;result();
		$data=$this-&amp;gt;model_mahasiswa-&amp;gt;get_nama($nama)-&amp;gt;result();
		echo json_encode($data);
	}
	else if ($nama = null and $npm != null) {
		$sql = $this-&amp;gt;db-&amp;gt;query(&#039;SELECT * FROM MAHASISWA WHERE npm=&quot;$npm&quot;&#039;)-&amp;gt;result();
		$data = $this-&amp;gt;model_mahasiswa-&amp;gt;get_npm($npm)-&amp;gt;result();
		echo json_encode($sql);

		}
		else {
	echo &quot;npm dan nama kosong&quot;;

} } </pre>

trus modelnya saya bikin 2 function untuk select aja

avatar fitridewi
@fitridewi

26 Kontribusi 3 Poin

Dipost 5 tahun yang lalu

abang abang terimakasih ternyata bisa wkwk hanya saja saya di api malah pake get yg seharusnya post, trus inputinnya di param bukannya di body haha maapin baru banget megang api

avatar fitridewi
@fitridewi

26 Kontribusi 3 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban