pencarian multi kategori dengan combobox

f3_hanung · Apr 25, 2012
mas ada contoh pencarian multi kategori menggunakan combobox ndak, tp kategorinya menggunakan skala antara A - B. misal seperti ini. Pencarian harga sepatu, pilihan dalam combobox sebagai berikut :
1. kurang dari 100.000
2. 100.000 - 200.000
3. 200.000 - 300.000
4. lebih dari 300.000
nah seperti itu mas pilihan dalam comboboxnya.
Silahkan login untuk menjawab!
1
Loading...
Ellyx Christian · Apr 26, 2012 · 1 Suka · 0 Tidak Suka
<form action="" method="post">
	<select name="price">
		<option value="-100000">kurang dari 100.000</option>
		<option value="100000-200000">100.000 - 200.000</option>
		<option value="200000-300000">200.000 - 300.000</option>
		<option value="300000-">lebih dari 300.000</option>
	</select>
</form>
<?php
if($_POST){
	$price = explode('-',$_POST['price']);
	$sql = "select * from name_table where 1=1 ";
	if($price[0]){
		$sql .= " and price >= '{$price[0]}'";
	}
	if($price[1]){
		$sql .= " and price <= '{price[1]}'";
	}
	$hs = mysql_query($sql);
	while($data = mysql_fetch_array($hs)){
		//tampilkan data
	}
}
?>
0
Loading...
f3_hanung · May 16, 2012 · 0 Suka · 0 Tidak Suka
mas elllyx, script ini yang masih salah apa ya...?
    <form method="post" action="">
    Bayar : <select id="price" name="price">
		<option> </option>
		<option value="-1000">kurang dari 1000</option>
		<option value="1000-2000">1000 - 3000</option>
		<option value="3000-7000">3000 - 7000</option>
		<option value="7000-">lebih dari 7000</option>
		</select>
	<input type="submit" value="Search" name="cari"/>
	
    </form>
    <!-- menampilkan hasil pencarian -->
    <?php
    $conn = mysql_connect("localhost", "root", "");
    mysql_select_db("contoh_f3");
	if($_POST){
		$price = explode('-',$_POST['price']);
		$sql = "select * from mhs where 1=1 ";
		if($price[0]){
		$sql .= " and price >= '{$price[0]}'";
		}
		if($price[1]){
		$sql .= " and price <= '{price[1]}'";
		}
		$hasil = mysql_query($sql);
		while($data = mysql_fetch_array($hasil)){
		//tampilkan data
		echo "harga = ".$data['byar'];
		}
    }
    ?>
0
Loading...
Ellyx Christian · May 16, 2012 · 0 Suka · 0 Tidak Suka
form method="post" action="">
    Bayar : <select id="price" name="price">
		<option> </option>
		<option value="-1000">kurang dari 1000</option>
		<option value="1000-2000">1000 - 3000</option>
		<option value="3000-7000">3000 - 7000</option>
		<option value="7000-">lebih dari 7000</option>
		</select>
	<input type="submit" value="Search" name="cari"/>
 
    </form>
    <!-- menampilkan hasil pencarian -->
    <?php
    $conn = mysql_connect("localhost", "root", "");
    mysql_select_db("contoh_f3");
	if($_POST){
		$price = explode('-',$_POST['price']);
		$sql = "select * from mhs where 1=1 ";
		if($price[0]){
		$sql .= " and price >= '{$price[0]}'";
		}
		if($price[1]){
		$sql .= " and price <= '{$price[1]}'";
		}
		$hasil = mysql_query($sql);
		while($data = mysql_fetch_array($hasil)){
		//tampilkan data
		echo "harga = ".$data['byar'];
		}
    }
    ?>
ada yang salah di baris ke-23
0
Loading...
f3_hanung · May 31, 2012 · 0 Suka · 0 Tidak Suka
kenapa masih belum bisa ya mas...?baris 23 sudah saya betulkan. ketika saya jalankan ada error di baris 26...
0
Loading...
Ellyx Christian · May 31, 2012 · 0 Suka · 0 Tidak Suka
errornya seperti apa?
0
Loading...
f3_hanung · Jun 1, 2012 · 0 Suka · 0 Tidak Suka
error nya seperti ini mas....Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\search\cari.php on line 26
oh iya mas mohon penjelasannya juga untuk script diatas "$sql = "select * from mhs where 1=1 ";" maksud where 1=1 itu bgmana ya mas?
0
Loading...
Ellyx Christian · Jun 1, 2012 · 0 Suka · 0 Tidak Suka
coba tambahkan or die(mysql_error()) setelah mysql_query seperti

$hasil = mysql_query($sql) or die(mysql_error());

trus lihat errornya apa
0
Loading...
f3_hanung · Jun 3, 2012 · 0 Suka · 0 Tidak Suka
sudah bisa mas Ellyx...,tp katika colom pada combobox saya kosongkan(saya tidak memilih pilihan dari kategori yang ada di combobox) lalu saya klik tombol cari ada error lagi seperti ini : Notice: Undefined offset: 1 in C:\xampp\htdocs\search\cari.php on line 22?
0
Loading...
Ellyx Christian · Jun 4, 2012 · 0 Suka · 0 Tidak Suka
ganti if($price[1]){ dengan if(isset($price[1]) && $price[1]){
0
Loading...
otto · Feb 28, 2015 · 0 Suka · 0 Tidak Suka
Saya ingin sharing saja ya:
saya juga pernah pusing 7 keliling bagaimana sih membuat pencarian dengan kategori harga atau nilai?

ini contoh php yang saya otak atik :D (mungkin berbeda kodenya tapi tujuannya mendekati sama) :
saya buat 2 file terpisah pertama halaman utama (halutama.php) yang satu lagi hasil pencarian (hasil.php)
:)

file: halutama.php

<form action='cari-sepatu.php' Method='POST'>

<select name='merek_sepatu'>
<option value=0 >merek sepatu </option>
<option value= 0 > </option>
<option value='bata'>BATA </option>
<option value='pelagio'>PELAGIO</option>
</select>

<select name='harga_sepatu'>
<option selected value=0>harga sepatu</option>
<option value= 0 > </option>
<option value=1> &lt; Rp 100.000</option>
<option value=2> Rp 100.000 - 200.000 </option>
<option value=3> Rp 200.000 - 300.000 </option>
<option value=6> &gt; Rp 300.000 </option>
</select>

<input type='SUBMIT' value='CARI' name='PENCARIAN' >

dibagian hasilnya;
hasil.php
<?php
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("contoh_f3");

if (isset($_POST)) {

$merek_sepatu = $_POST;
$harga_sepatu = $_POST;

IF ($harga_sepatu = 1)
{
$harga = 'harga < 100000';
}
ELSEIF ($harga_sepatu = 2)
{
$harga = 'harga BETWEEN 100000 AND 200000';
}
ELSEIF ($harga_sepatu = 3)
{
$harga = 'harga BETWEEN 201000 AND 300000';
}
ELSE
{
$harga = 'harga > 301000';
}

$pencarian = mysql_query("select * from SEPATU WHERE merek ='$merek_sepatu' OR $harga ") or die(mysql_error());

while($data=mysql_fetch_array($pencarian)) {

echo $data '<br>' ;
echo '<B>'. $data .'</B> <hr>';

}
}

?>

PENJELASAN:

disini kita menggunakan BETWEEN maksudnya memberikan nilai antara, kenapa pada halutama.php kita memasukkan angka value=1 bukannya nilai misalnya : 100 000 karena untuk memanipulasi sql agar membaca angka dari value yang dipilih dengan menggunakan fungsi IF.
seperti :

IF ($harga_sepatu = 1)
{
$harga = 'harga < 100000';
}
disini $harga menyimpan string bukan angka (number) ke mysql sampai pada saat nanti dipilih sesuai keinginan Client.

$pencarian = mysql_query("select * from SEPATU WHERE merek ='$merek_sepatu' OR $harga ");
$harga di atas jangan ditambah dengan ' ' karena terjadi kesalahan baca.
kode diatas sebenarnya adalah uraian dari pilihan (eksekusi client)

jika dijabarkan pada saat client memilih pilihan value = 1 kategori harga_sepatu pada halutama.php

artinya:
$pencarian = mysql_query("select * from SEPATU WHERE merek ='$merek_sepatu' OR 'harga < 100000' ");

jika client memilih value = 2 pada kategori harga_sepatu pada halutama.php
$pencarian = mysql_query("select * from SEPATU WHERE merek ='$merek_sepatu' OR 'harga BETWEEN 100000 AND 200000' ");

semoga bermamfaat :O


look at us at:
rodabagus.com

cari jual motor, mobil kamu disini ya