30-40 if'i nasıl kullandınız? nasıl bir algoritma kurdunuz ki? sanırım 1,2,3,4 tüm koşullara göre tek tek ve birbirleri arasında kontrol ederek yaptınız bu işi, başka türlü 30-40 if koşulu çıkarmak zor iş.

Bu işin mantığı şudur;

Bir arama yapacağınız sorgunun ortak kısmı yazılır.
$sorgu = "select * from falanca_Table ";

ikinci olarak sorgu sayınız kadar if açılır (yani sizde 4) ve sorgunun devamına eklenir.


if(!$kategori_degisken):
$sorgu .= "where kategori = {$kategori_degisken} and"; //(bu sadece birisi, diğerleri için de yapacaksın bu if koşulunu)
endif;


üçüncü olarak da eğer bu sorguların hiçbirisi yazılmazsa uygulamamızın normal çalışması için genel bir sorgu yazılır.

$sorgu .= "where 1=1";

Sonra da sorguyu veritabanına işleteceksin, olay bu kadar basit aslında.