Adáptalo a tu sistema pero la idea es esta:
Código PHP:
Ver original<?php
if(isset($_POST['buscar']))//Porcesar sólo si se ha enviado algo por formulario {
$sql = "SELECT * FROM TABLA T WHERE 1 ";
//Nombre, si está definido
if(isset($_POST['nombre']) && $_POST['nombre']) { $sql .="AND T.nombre LIKE '%{$_POST['nombre']}%' ";
echo "<h5>Nombre se parece a: {$_POST['nombre']}</h5>";
}
//Género siempre está definido pero puede tener distintos valores, en este caso, sólo vale cuando
//es 0 o 1
if($_POST['genero']!="-1"){
$sql .="AND T.genero = '{$_POST['genero']}' ";
echo "<h5>El género es: {$_POST['genero']}</h5>";
}
else {
echo "<h5>No se ha definido el género</h5>";
}
//Calcular máximo y mńimo
if($_POST['min'] && $_POST['max'])
{
$sql .="AND (T.edad <= '{$_POST['max']}' AND T.edad >= '{$_POST['min']}') ";
}
elseif($_POST['min'] && !$_POST['max'])
{
$sql .="AND T.edad >= '{$_POST['min']}' ";
}
elseif(!$_POST['min'] && $_POST['max'])
{
$sql .="AND T.edad <= '{$_POST['max']}' ";
}
echo "<h5>Mínimo es: {$_POST['min']}</h5>";
echo "<h5>Máximo es: {$_POST['max']}</h5>";
$sql .=";";
echo "<h3>La select es: $sql</h3>";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1252" />
<title>Documento sin título</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="300" border="0">
<tr>
<td colspan="2"><div align="center">Buscador de personas</div></td>
</tr>
<tr>
<td>Género</td><input name="buscar" type="hidden" id="buscar" size="1"
maxlength="1" value="go" />
<td><label> <select name="genero" id="genero">
<option value="-1" selected="selected">Seleccione...</option>
<option value="0">Masculino</option>
<option value="1">Femenino</option>
</select> </label></td>
</tr>
<tr>
<td>Edad (min)</td>
<td><input name="min" type="text" id="minimo" size="3"
maxlength="3" /></td>
</tr>
<tr>
<td>Edad (max)</td>
<td><input name="max" type="text" id="maximo" size="3"
maxlength="3" /></td>
</tr>
<tr>
<td>Nombre</td>
<td><label> <input name="nombre" type="text" id="nombre" size="20"
maxlength="20" /> </label>
</td>
</tr>
<tr>
<td colspan="2"><input type="Submit"></td>
</tr>
</table>
</form>
</body>
</html>