Hola, muevo tu mensaje a MySQL pero aún así, no se si dejártelo aquí o moverlo a PHP.
Primero lo edité para quitarle las variables de $result y otras.
Te pregunto ¿Crees que MySQL sabe que quiere decir $buscar o $nocap?
Esas son variables que utilizas en programación y puede que tu consulta esté bien pero uno no es adivino para saber que valores llevan esas variables.
Das un enlace donde tenes algo hecho pero... ¿Cómo vamos a saber cuando usas $buscar o $nocap??? Eso también está en tu lógica.
¿Ya intentaste hacerlo SIN usar variables, o sea, con valores reales y ver los resultados?
Lo que te digo es para orientarte y no para molestarte, pero cuando uno desarrolla algo que involucre BD, uno debe primero realizar todas las pruebas de posibles combiciones con SQL puro y después aplicarlas en la programación.
Saludos.
Función de la sección de Base de Datos