Pencarian Nomor

Ceritanya saya membuat sebuah form pencarian, dalam form pencarian tersebut tersebut ada pencarian berdasarkan nomor. Tapi ada satu permasalahan yang sama alami yaitu ketika saya memasukkan angka 1 pada form pencarian yang muncul itu tidak nomor 1 saja, tetapi nomor yang terdapat angka 1 seumpama 10,11,12,21,31 dan seterusnya yang intinya terdapat angka 1. Bagimana solusi untuk permasalahan tersebut?

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Diperbarui 6 tahun yang lalu

23 Jawaban:

source codenya boleh di tampilkan ngk bang?

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

<?php
include 'login/config/koneksi.php';
//pencarian
if(isset($_GET['cari']))
{
$kategori_peraturan = $_GET['kategori_peraturan'];
$nomor_peraturan 	= $_GET['nomor_peraturan'];
$status_peraturan 	= $_GET['status_peraturan'];
$tahun_peraturan	= $_GET['tahun_peraturan'];
$kata				= $_GET['kata'];

$result	= mysql_query("select * from pusat_data where kategori_peraturan like '%".$kategori_peraturan."%' and status_peraturan like '%".$status_peraturan."%'and nomor_peraturan like '%".$nomor_peraturan."%' and tahun_peraturan like '%".$tahun_peraturan."%' and judul_peraturan like '%".$kata."%' ORDER BY id_peraturan DESC");
}
else
{
$result = mysql_query("select * from pusat_data ORDER BY id_peraturan DESC");
}
?>

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

coba di query pencariannya diganti jadi gini mas...


$result	= mysql_query("select * from pusat_data where
											kategori_peraturan = '".$kategori_peraturan."'
											and status_peraturan = '".$status_peraturan."'
											and nomor_peraturan = '".$nomor_peraturan."'
											and tahun_peraturan = '".$tahun_peraturan."'
											and judul_peraturan = '".$kata."' ORDER BY id_peraturan DESC
											");

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

Tidak perlu menggunakan 'like' jika yang ingin ditampilkan sesuai dengan apa yang dicari

avatar iqro
@iqro

1 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

ok mas tak coba ne dulu

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

tambahan :

untuk penggunaan paramater WHERE, sendiri ada beberapa macam :

contoh 1 :

 SELECT * FROM tabel WHERE id='$id'

jika menggunakan seperti ini maka data yang ditampilkan hanyalah yg memiliki id sama persis dengan $id...

contoh 2 :

 SELECT * FROM tabel WHERE id like '%$id%'

ini akan menampilkan data yg memiliki id seperti $id (entah ditengah karakter ataupun dibelakang,

*note : karakter % ini biasa digunakan sebagai karakter 'whatever' (bagi saya :v ) soalnya % disini berfungsi sebagai pengganti karakter...

maaf kalau agak sulit dimengerti... heheh tpi kalau mau searching bisa baca2 disini -> https://www.root93.co.id/2013/03/menggunakan-perintah-select-from-di.html

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

klo like diganti = malahan gak muncul mas datanya

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

coba ditampilkan lgi source code nya mas...

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

dan kalau bisa gambar form pencariannya ditampilkan juga...

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu


<?php
								include 'login/config/koneksi.php';
								//pencarian
								if(isset($_GET['cari']))
								{
									$kategori_peraturan = $_GET['kategori_peraturan'];
									$nomor_peraturan 	= $_GET['nomor_peraturan'];
									$status_peraturan 	= $_GET['status_peraturan'];
									$tahun_peraturan	= $_GET['tahun_peraturan'];
									$kata				= $_GET['kata'];

									$result	= mysql_query("select * from pusat_data where
											kategori_peraturan = '".$kategori_peraturan."'
											and status_peraturan = '".$status_peraturan."'
											and nomor_peraturan = '".$nomor_peraturan."'
											and tahun_peraturan = '".$tahun_peraturan."'
											and judul_peraturan = '".$kata."' ORDER BY id_peraturan DESC
											");
								}
								else
								{
									$result = mysql_query("select * from pusat_data ORDER BY id_peraturan DESC");
								}

							?>

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

gmna cara ngupload gambar ny mas

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

coba dijadiin gini :


$result	= mysql_query("select * from pusat_data where
											kategori_peraturan like '%".$kategori_peraturan."%'
											and status_peraturan like '%".$status_peraturan."%'
											and nomor_peraturan='".$nomor_peraturan."'
											and tahun_peraturan like '%".$tahun_peraturan."%'
											and judul_peraturan like '%".$kata."%' ORDER BY id_peraturan DESC
											");

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

yg dipakein parameter = (sama dengan) cuman di bagian nomor_peraturannya doang.. biar pencarian akan akurat sesuai dengan nomer yg dimasukkan ....

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

Tetep gk bisa mas

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

untuk upload gambar cek disini -> https://sekolahkoding.com/forum/aturan-main

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

udah bisa mas yang nomor cuma pake = (sama dengan)

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Makasih mas atas bantuannya

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

alhamdulillah.. siap mas... heheh

biar bisa nambah2 pengetahuan tentang masalah nya mas yg tadi, bisa di cek kesini -> https://apriforhumanbeing.wordpress.com/2011/06/06/wildcard-pada-mysql/

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

ok mas......

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Ada masalah yang baru muncul mas, form pencarian saya kan terdiri dari 5 kategori ketika saya hanya mencari tahun peraturan saja data tidak muncul tapi jika mencari nomor dan tahun bersamaan muncul datanya. intinya ketika saya mencari tanpa menggunakan nomor maka data tidak muncul jika menggunakan nomor maka muncul. gimana solusi nya mas?

ini source code nya

 <?php
								include 'login/config/koneksi.php';
								//pencarian
								if(isset($_GET['cari']))
								{
									$kategori_peraturan = $_GET['kategori_peraturan'];
									$nomor_peraturan 	= $_GET['nomor_peraturan'];
									$status_peraturan 	= $_GET['status_peraturan'];
									$tahun_peraturan	= $_GET['tahun_peraturan'];
									$kata				= $_GET['kata'];

									$result	= mysql_query("select * from pusat_data where
											kategori_peraturan like '%".$kategori_peraturan."%'
											and status_peraturan like '%".$status_peraturan."%'
											and nomor_peraturan like '".$nomor_peraturan."'
											and tahun_peraturan like '%".$tahun_peraturan."%'
											and judul_peraturan like '%".$kata."%' ORDER BY id_peraturan DESC
											");
								}
								else
								{
									$result = mysql_query("select * from pusat_data ORDER BY id_peraturan DESC");
								}

							?>
avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

ini gambar form nya mas

avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

alasan kenapa masalah tersebut bisa terjadi karena ketika data nomor_peraturan dikosongkan, maka query akan mencari nomor_peraturan yg kosong (null/empty) DAN data yang tahunnya seperti (LIKE % %) tahun yg mas masukkan... sehingga query akan mencari data yg intinya nomor_peraturan nya bernilai kosong...

--

dari 5 kategori tersebut, kategori apa saja yg wajib diisikan mas (required)?? kalau ada nnti querynya beda lagi, ada yg pake 'OR' dan ada juga yg pake 'AND'

tapi, kalau semua datanya ada yg bisa dikosongkan maka, klausa AND nya bisa diganti dengan klausa OR sehingga jika salah satu dari kategori tersebut terpenuhi maka datanya akan ditampilkan....


$result	= mysql_query("select * from pusat_data where
											kategori_peraturan like '%".$kategori_peraturan."%'
											OR status_peraturan like '%".$status_peraturan."%'
											OR nomor_peraturan = '".$nomor_peraturan."'
											OR tahun_peraturan like '%".$tahun_peraturan."%'
											OR judul_peraturan like '%".$kata."%' ORDER BY id_peraturan DESC
											");

avatar AlifNur
@AlifNur

164 Kontribusi 72 Poin

Dipost 6 tahun yang lalu

Jawaban Terpilih

udah bisa mas ternyata pake ini..

 <?php
								include 'login/config/koneksi.php';
								//pencarian
								if(isset($_GET['cari']))
								{
									$kategori_peraturan = $_GET['kategori_peraturan'];
									$nomor_peraturan 	= $_GET['nomor_peraturan'];
									$status_peraturan 	= $_GET['status_peraturan'];
									$tahun_peraturan	= $_GET['tahun_peraturan'];
									$kata				= $_GET['kata'];

									$add = "";
										if ($kategori_peraturan)
											$add = $add . " and kategori_peraturan like '%".$kategori_peraturan."%' ";
										if ($status_peraturan)
											$add = $add . " and status_peraturan like '%".$status_peraturan."%' ";
										if($nomor_peraturan)
											$add = $add . " and nomor_peraturan like '".$nomor_peraturan."' ";
										if($tahun_peraturan)
											$add = $add . " and tahun_peraturan like '%".$tahun_peraturan."%' ";
										if($kata)
											$add = $add . " and judul_peraturan like '%".$kata."%' ";

										$q	= "select * from pusat_data where (1=1) ".$add." ORDER BY id_peraturan DESC";
										$result = mysql_query($q);
								}
								else
								{
									$result = mysql_query("select * from pusat_data ORDER BY id_peraturan DESC");
								}

							?>
avatar Ikwan
@Ikwan

18 Kontribusi 0 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban