Yo haria algo asi...
Código PHP:
<?php
if($_GET)
{
//verifico si se envio la variable y creo un filtro
if(isset($_GET['marca']))
{
$marca=$_GET['marca'];
if(!empty($marca))
{
$filtro= "marca LIKE '%$marca%'";
}
}
//idem
if(isset($_GET['categoria']))
{
$categoria=$_GET['categoria'];
//si no fue enviada vacia
if(!empty($categoria))
{
//verifico si filtro esta vacio
if($filtro=="")
{
//si esta vacio, genero un like independiente
$filtro= "categoria LIKE '%$categoria%'";
}
else
{
//caso contrario uno el like de marca con este
$filtro.= "OR categoria LIKE '%$categoria%'";
}
}
}
//idem al anterior
if(isset($_GET['key']))
{
$key=$_GET['key'];
if(!empty($key))
{
if($filtro=="")
{
$filtro= "key LIKE '%$key%'";
}
else
{
$filtro.= "OR key LIKE '%$key%'";
}
}
}
//genero un consulta y le agrego el resultado del $filtro
//siempre que no este vacio
if(!$filtro=="")
{
$sql = "SELECT * FROM tabla WHERE $filtro";
$query = mysql_query($sql, $link_de_conexion);
//saber cuantos elementos hay o fueron encontrados
$num= mysql_num_rows($query);
}
}
else
{
echo "debes enviar una consulta para activar el buscador";
}
?>