Esto te da lo que buscas en una sola consulta y ordenado como lo quieres...incluso mejor por que con el MAX()... GROUP BY solo verás la ultima fecha de visita de cada Item.
fecha<='" . $ahora . "'
Puedes tener items con fecha futura?
Si es así no hace falta que uses una variable
fecha<=NOW() es más eficiente....
(si hay items futuros)
Por cierto si iditem es numérico puedes poner tranquilamente
...WHERE iv.idItem<>" . $idItem . "...