al ver que casi todas las consultas son parecidas lo mejor sería implementar algo mas flexible:
Código PHP:
$candy['foo'] = ! empty($_GET['foo'])? $_GET['foo']: '';
$candy['bar'] = ! empty($_GET['bar'])? $_GET['bar']: '';
$where = array();
foreach ($candy as $key => $val)
{
if (strlen(trim($val)) === 0) continue;
if ( ! is_numeric($val)) $val = "'$val'";
$where []= "`$key`=$val";
}
$sql = "SELECT * FROM tabla\n";
if ( ! empty($where)) $sql .= "WHERE\n" . join("\nAND\n", $where);
la idea es sencilla:
- estableces un arreglo con clave/valor que serían los nombres de columna/valores recibidos
- iteras tu arreglo y mientras algún valor no venga vacío lo agregamos como comparación WHERE
finalmente unimos las condiciones a la consulta de SQL original, ojala te oriente un poco...