Código PHP:
    $visita=mysql_num_rows(mysql_query("SELECT ips FROM lecturas WHERE ips LIKE '%".$ip."%' AND id_contenido = '". $res["id"] . "'")); 
    
  Esa consulta para ver si la ip esta en el registro no tiene sentido ahora que se usan arrays serializados. Tendrias que usar in_array() con la ip y el array unserializado. Si no esta, añadirla, serializar el array y guardalo. 
 Código PHP:
    ((is_array($checkIP)) ? array_push($checkIP,$ip_num) : $checkIP=array($ip_num)); 
    
  ¿De donde sale $ip_num? ¿No seria $ip?