Parece ser que el fallo está en la sintaxis del LIMIT
Para empezar, yo probaría a ver si sin el límite funciona, luego intentaría hacer la operación fuera de la consulta y guardarla en una variable.
Código PHP:
$inicioLimit= ($pagina-1)*$noRegistros;
$query='SELECT imagen_chiquita1, producto, LEFT( detalles, 172 ) AS titulo_recortado, garantia, link, compra_online, disponible FROM productos2 WHERE visible=1 LIMIT '.$inicioLimit.', '.$noRegistros.'';
$select=mysql_query($query);
LIMIT
Para asegurarte de que la consulta funciona, también puedes cambiar las variables por números fijos y probar, por ejemplo:
Código PHP:
SELECT imagen_chiquita1, producto, LEFT( detalles, 172 ) AS titulo_recortado, garantia, link, compra_online, disponible FROM productos2 WHERE visible=1 LIMIT 0,5
Así comprobarás si el WHERE está dando problemas, pero ya te digo yo que no tiene pinta