Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Arama Formu Hk. Soru

...::LorD::...

0
Onaylı Üye
Üye
Katılım
27 Aralık 2007
Mesajlar
2,109
Açılan Konu
124
Tepki puanı
2
Konum
cHeteM
Merhaba arkadaşlar

öncelikle herkese başarılar dilerim. uzun bir süredir girip hal hatır sormaya aranızda bulunmaya vaktim olmadı. umarım herkes iyidir. gelelim sorumuza

2. el araba sitesi yaptım. kişilerin araçlarını satabileceği bir platform. herşey bitti arama formunu sona bıraktım. ufak bir sorum olacaktı onlardan cevap aldığımda arama formu da bitmiş olacak.

mesela markalar için açılır kutumuz var kutudaki seçenekler

- All
- BMW
- Mercedes
- Volva ...

All yani hepsi seçeneğinin değeri boş muydu 0 mıydı öncelikle onu sorayım.

diğeri yıl ve fiyat açılır menüsü. bu menülerde aralıklara göre listeleme yapacam mesela 15000 ve 25000 TL değeri arasındaki araçları lisleteleyecem. bunun php kodu daha doğrusu mysql sorgulama kodu ne şekilde olmalıydı? önceden yaptım fakat uzun süredir php ile ilgilenmediğim için unuttum yaptığım şeyi de bulamıyorum. bu konuda yardım ederseniz sevinirim

teşekkürler

HTML:
<select size='1' name='D4' style='border: 1px solid #65A5E6; width: 140px;'>
<option value='0-2020' selected>All</option>
<option value='0-1990'>< 1990</option>
<option value='1990-1995'>1990 - 1995</option>
<option value='1995-2000'>1995 - 2000</option>
<option value='2000-2005'>2000 - 2005</option>
<option value='2005-2020'>2005 ></option>
</select>

HTML:
<select size='1' name='D5' style='border: 1px solid #65A5E6; width: 140px;'>
<option value='0-1000000' selected>All</option>
<option value='0-1000'>0 - 1000</option>
<option value='1000-5000'>1000 - 5000</option>
<option value='5000-10000'>5000 - 10000</option>
<option value='10000-15000'>10000 - 15000</option>
<option value='15000-25000'>15000 - 25000</option>
<option value='25000-50000'>25000 - 50000</option>
<option value='50000-1000000'>> 50000</option>
</select>
 

zemed

0
Onaylı Üye
Üye
Katılım
19 Nisan 2010
Mesajlar
0
Açılan Konu
2
Tepki puanı
2
Konum
php.exe
Merhaba,

PHP:
<?php

if($_POST['ara']){

$marka=htmlspecialchars($_POST['marka']);
$D4=htmlspecialchars($_POST['D4']);
$D5=htmlspecialchars($_POST['D5']);

$bolD4=explode("-",$D4);
$bolD5=explode("-",$D5);
if($marka=="0"){ $sorgu=""; } else {$sorgu =" and marka='$marka' "; }

$bakbakalim=mysql_query("select * from arabalar where model between '$bolD4[0]' and '$bolD4[1]' and fiyat between '$bolD5[0]' and '$bolD5[1]' $sorgu");


} // post

?>

All'ın değerini 0 yap burada,

Çalışır mı bilmem, denemekte fayda var :)


Ek olarak fiyatları veritabanına nasıl yazdırdın bilmiyorum. Yani açıılır menüdeki gibi 10000 gibi düz format değildir sanırım.
 

eRLySL

0
Onaylı Üye
Üye
Katılım
25 Mart 2008
Mesajlar
424
Açılan Konu
12
Tepki puanı
1
All'yi boş bırakınca Marka tablosunu es geçer, hepsi gelir. O şekilde denedin mi?
 

...::LorD::...

0
Onaylı Üye
Üye
Katılım
27 Aralık 2007
Mesajlar
2,109
Açılan Konu
124
Tepki puanı
2
Konum
cHeteM
PHP:
$sorguaraba = mysql_query("SELECT id,marka,model,renk,km,yil,ucret FROM arabalar WHERE model='$modeller' AND marka='$markalar' AND renk='$D3' AND (yil BETWEEN '$bolD4[0]' AND '$bolD4[1]') AND (ucret BETWEEN '$bolD5[0]' AND '$bolD5[1]') ORDER BY id DESC LIMIT $s,$perpage");

arkadaşlar listeleme için bu şekilde yazdım. şöyle bir sorum var marka='$cities' şeklinde yapınca eşitlik şartı aramakta bu yüzden 0 veya boş veri girince listeleme yapmamakta. LIKE ile yapsam olmaz bu konuda yardım ederseniz sevinirim

teşekkürler
 

superweb

0
Onaylı Üye
Üye
Katılım
29 Mart 2010
Mesajlar
332
Açılan Konu
11
Tepki puanı
9
Konum
İstanbul
Markaların hepsi durumu option valuesunu boş yapın ve
PHP:
$addSQL = "";
if($markalar!="") {
	$addSQL .= "AND marka='$markalar'";
}

$sorguaraba = mysql_query("SELECT id,marka,model,renk,km,yil,ucret FROM arabalar WHERE model='$modeller' ".$addSQL." AND renk='$D3' AND (yil BETWEEN '$bolD4[0]' AND '$bolD4[1]') AND (ucret BETWEEN '$bolD5[0]' AND '$bolD5[1]') ORDER BY id DESC LIMIT $s,$perpage");
 

eRLySL

0
Onaylı Üye
Üye
Katılım
25 Mart 2008
Mesajlar
424
Açılan Konu
12
Tepki puanı
1
PHP:
$sorguaraba = mysql_query("SELECT id,marka,model,renk,km,yil,ucret FROM arabalar WHERE model='$modeller' AND marka='$markalar' AND renk='$D3' AND (yil BETWEEN '$bolD4[0]' AND '$bolD4[1]') AND (ucret BETWEEN '$bolD5[0]' AND '$bolD5[1]') ORDER BY id DESC LIMIT $s,$perpage");
arkadaşlar listeleme için bu şekilde yazdım. şöyle bir sorum var marka='$cities' şeklinde yapınca eşitlik şartı aramakta bu yüzden 0 veya boş veri girince listeleme yapmamakta. LIKE ile yapsam olmaz bu konuda yardım ederseniz sevinirim

teşekkürler

Öngörülen arama kriterleri için bir fonksiyon yazarsan sorununu halledersin, mantık olarak şu şekilde düşünebilirsin:
"Gelen arama'da, istenilen kriter belirtilmediyse bunu SQL sorgusuna dahil etme"

@superweb in yazdigi kodu biraz daha gelistirmen gerekiyor. Bir proje icin yazmistim boyle bir fonksiyon dilersen pm yada MSN yolu ile dosyayi gondereyim, bi incele..
 

...::LorD::...

0
Onaylı Üye
Üye
Katılım
27 Aralık 2007
Mesajlar
2,109
Açılan Konu
124
Tepki puanı
2
Konum
cHeteM
ilginiz için teşekkürler arkadaşlar bitirdim çok şükür :)
 

...::LorD::...

0
Onaylı Üye
Üye
Katılım
27 Aralık 2007
Mesajlar
2,109
Açılan Konu
124
Tepki puanı
2
Konum
cHeteM
superweb'in belirttiği gibi

$addSQL = "";
if($markalar!="") {
$addSQL .= "AND marka='$markalar'";
}

input boş gelirse sorgulamayı ona göre şekillendiriyorum. yardımlarınız için teşekkürler
 
Üst