Arama Formu Hk. Soru

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
1
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
İyinet Üyesi
Katılım
19 Nisan 2010
Mesajlar
0
Reaction score
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
İyinet Üyesi
Katılım
25 Mart 2008
Mesajlar
424
Reaction score
1
All'yi boş bırakınca Marka tablosunu es geçer, hepsi gelir. O şekilde denedin mi?
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
1
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
İyinet Üyesi
Katılım
29 Mart 2010
Mesajlar
332
Reaction score
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
İyinet Üyesi
Katılım
25 Mart 2008
Mesajlar
424
Reaction score
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
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
1
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
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Elektronik Sigara
Üst