No es por nada pero.. Dios, es uno de los códigos mas largos que he visto para una tarea tan sencilla

Veo que te falta mucho por aprender del mundo del php, usaste opciones demasiado básicas y te olvidaste de lo demás que ayuda muchísimo: funciones, arrays, bucles, etcétera.
No estoy seguro que ésto sea lo que busques, pero a lo que entendí, ésto te debe funcionar como deseas:
Código PHP:
Ver original<?php
$vars = array('titulo', 'autor',' formato', 'visitas', 'categoria', 'tamano');
foreach($vars as $var) {
$var_var = "buscar_$var";
$$var_var = (isset($_GET[$var])) ?
$_GET[$var] : null; }
if($buscar_titulo != null) {
$restriccion = " titulo like '$buscar_titulo%'";
}elseif($buscar_autor != null) {
$restriccion = " autor = '$buscar_autor'";
}
foreach($vars as $var) {
$varr = $_GET[$var];
$buscar_ = "buscar_$var";
if($varr != null) {
if($var == 'visitas' || $var == 'tamano')
$restriccion .= " and $var >= '{$$buscar_}'";
else
$restriccion .= " and $var = '{$$buscar_}'";
}
}
Si no funciona como quieres exactamente, te invito a modificar el código a tu gusto hasta que cumpla
con tus necesidades
Saludos