Lo normal es que se repita la consulta SQL pero añadiendo todos los criterios de busqueda que vas definiendo.
Es decir .. si tu a tu script PHP de consulta en un principio le pasases un criterio . .generas un link tipo:
buscar.php?fecha1=19-12-1960
luego si generas otro criterio .. le añades el siguiente:
buscar.php?fecha1=19-12-1960&fecha2=19-12-2000
Y así sucesivamente .. Tendrías que trabajar sólo la lógica para ir componiendo tu sentencia SQL a base de operadores lógicos "AND" u "OR" según existan esas variables (que son tus criterios de busqueda que vas agregando).
También puedes crear tablas temporales y buscar en ellas .. pero ahí estaras con el dilema de siempre: ¿y si entre la busqueda original y primer filtrado .. la BD se modifica? .. Pero, la técnica en su base sería la misma (la del paso de parámetros a tu script y discriminación de estos datos).
Por lo demás .. si hay algo ya hecho al respecto (todo puede ser .. es un problema común lo que plateas) podrías tenerlo en:
http://www.phpclasses.org/browse/class/10.html
Un saludo,