Cita: categoriapro0, categoriapro1 y categoriapro2 son VARCHAR
Si son VARCHAR, deben ser evaluados como cadenas de texto, y tal como lo scribes, estás haciéndolo como números.
Recuerda un detalle muy importante: MySQL no es parte de PHP, por lo que no ve, ni entiende de variables. De hecho PHP
no interactúa realmente con MySQL, sino que lo hace la librería que usas, que accede a un servicio. Ese servicio es leído por MySQL y a ese servicio es a donde MySQL envía la respuesta.
Eso significa que lo que en realidad recibe MySQL es una cadena de texto que contiene una consulta, la cual debe forzosamente estar correctamente construida, y no lo está.
Como no hay errores sintácticos, enviaré el tema a PHP.
Anticipandome a eso, lo mejor, para evitarte problemas con los apóstrofes, es que lo armes mas o menos así:
Código PHP:
$offset = $resul_x_libro * $resul_x_pagina ;
$consulta = "SELECT * FROM registroprofesionales
WHERE categoriapro0 = '$coche' OR categoriapro1 = '$coche' OR categoriapro2 = '$coche'
ORDER BY nombreempresa ASC
LIMIT $offset, $resul_x_pagina";
Aunque yo lo prefiero armar así, para hacer las cosas más comrpensibles:
Código PHP:
$offset = $resul_x_libro * $resul_x_pagina ;
$consulta = "SELECT * ";
$consulta .= " FROM registroprofesionales ";
$consulta .= " WHERE categoriapro0 = '$coche' OR categoriapro1 = '$coche' OR categoriapro2 = '$coche' ";
$consulta .= " ORDER BY nombreempresa ASC ";
$consulta .= " LIMIT $offset, $resul_x_pagina";
// Para asegurarnos de lo obtenido, y verificar que lo que queda armado tiene los datos necesarios:
echo $consulta;