Hola
Bueno, pues se me ocurre que hagas en la parte donde escribes los datos para la consulta un objeto select en el cual esten las opciones
-edad
-edad y sexo
- edad, sexo y pais
- edad sexo, pais y ciudad
y en el option value del select pones los nombres de los campos involucrados, es decir por ej
Código HTML:
Filtrar resultados por <select name=restoconsulta>
<option value="edad">Edad</option>
<option value="edad,sexo">Edad y sexo</option>
<option value="edad,sexo,pais">Edad,sexo y pais</option>
<option value="edad,sexo,pais,ciudad">Edad, sexo, pais y ciudad</option>
</select>
Y como me imagino tienes un boton consultar o algo parecido, dependiendo del metodo que uses (get o post) entonces la consulta tendrias que cambiarla asi por ej
(voy a imaginar que usas mysql)
Código PHP:
$masconsulta = $_POST["restoconsulta"];
if(!empty($masconsulta)){ $consul = "order by ".$masconsulta; }
$sql = "SELECT * FROM tabla $consul";
y asi traeria todo de la tabla que le indiques y lo ordenaria por el campo que escogiste en el select, espero eso sea lo que necesites o si lo que necesitabas era hacer la busqueda por usuarios y traer solo los de 18 a 20 años por ej, entonces necesitas 2 campos mas donde escribir esos datos pero igual necesitas decirle esos datos de que campo son en la consulta, entonces igual deberias dejar el select y en ese caso poner en la consulta un between edad1 and edad2 por ej, espero te sirva