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.