Ya lo resolví.
Aca les dejo la funcion, era lo que intentaba hacer.
Código PHP:
//por defaecto trae todos los libros
function get_books($catid=NULL,$letra=NULL,$oferta=NULL)
{
//si falla conexion aborta operacion
if(!$conn = db_connect())
return false;
//consulta por default
$query = "SELECT * FROM books";
//si se seleecciono categoria $_GET['catid'] traemos todos los de esa categoria, obtenida por url
if($catid)
$query .=" WHERE catid=$catid";
//si se seleeccionoletra $_GET['letra']
if($letra)
{
//pregunto si se selecciono categoria
if ($catid)
$query.=" AND";
else
$query.=" WHERE";
// expresion regular libros que empiezen con una letra o los que empiezen de 0-9
$query .=" title RLIKE '^[".$letra."]'";
}
//va a ser valida solo para index donde se muetrsen las ofertas
//y no se puede seleccionar categoria ni letras
if($oferta)
$query .=" WHERE oferta='".$oferta."'";
//hago consulta
$result = @mysql_query($query);
//si no result
if (!$result )
return false;
$num_books = @mysql_num_rows($result);
//si no hay nada se baorta
if ($num_books ==0)
return false;
//pasa los resultados por otra funcion que devuelve el array
$result = db_result_to_array($result);
//devuelve consulta en array
return $result;
}