Çoklu form verilerinden bilgi alınacağı zaman bir çok yöntemi var benim genelde kullandığım ve kullanımı duruma göre esneklik sağlayan bir durum var.

Ben form dan gelen değerleride genelde array alıyorum.

Mesela formda ki input veya select lerin name bölümlerini f[sektor], f[il] gibi array form isimleri oluşturuyorum. Böylelikle kontrolüm ve kullanımım basit oluyor.

<select name="f[sektor]"> gibi

Daha sonra post edildiğini düşünelim.

$query[] = "id!=0"; // Formdan hiç bir veri gelmezse WHERE hata vermemesi için

if($f = $_POST['f'])
{
   if($f['sektor']) $query[] = "sektor='{$f['sektor']}'";
   if($f['il']) $query[] = "il='{$f['il']}'";
// formdan gelen değerleri kontrol eder ve dolu ise WHERE sorgusuna girmesini sağlar 
}

// En son query olarak oluşturulan array dizisini WHERE e && ile sokuyoruz;
$sql=$db->prepare("select * from firma WHERE ".implode(' && ',$query));
$sql->execute();
while ($firma=$sql->fetch(PDO::FETCH_ASSOC)) {
  echo "<div><h2>".$firma['baslik']."</h2><p>".$firma['aciklama']."</p></div>";
}
Yukarıdaki kodda umarım demek istediğimi anlatabilmişimdir.


VeLi33 adlı üyeden alıntı: mesajı görüntüle
cvp için teşekkür ederim. yukarıda yazdığım kodlar normal queryden farkı yok biliyorum ama where kısmına sektor=?, il=? şeklinde yazıp executeye de post değişken lerini yazınca eger kullanıcı form ile filtreleme yapmamışsa sıkıntı çıkıyor yani suan html form da sektor ve il icin select form var bunda bile if ile tek tek yazsa 4 ayrı if blok oluyor kulanici formdan filtreleme yapmadiysa if sektor sectiyse elseif il sectiyse elseif hem soktor hem il sectiyse baska elseif busekilde yapsam yarin birgun baska bir filtreleme parametresi eklesem mesela sadece tlf nosu olan ilanlar isin icinde cikilmaz bir hal alıyor