infatti che il count è giusta .. ma mi sa che è questa:
codice:
if(empty($ruolo))	{
	
		$stmt = $db->prepare('
			SELECT
				*
			FROM
				users
		
			ORDER BY
				date_reg
			LIMIT
				:limit
			OFFSET
				:offset
		');
		
		$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
		$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
  	
	}else
	{
		$stmt = $db->prepare('
			SELECT
				*
			FROM
				users
			WHERE level_access=:level_access 
			ORDER BY
				date_reg
			LIMIT
				:limit
			OFFSET
				:offset
		');
		
		$stmt->bindParam(':level_access', $ruolo, PDO::PARAM_INT);
		$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
		$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
  	
	}


    $stmt->execute();
che dici può essere questa perché se digito users.php?ruolo=1 = visualizza e stampa la query.
se digito users.php?ruolo=2 , stampa query a modo e sotto da errore di sintassi mysql...

quindi mi sa che è sbagliata la query sotto (quello che ti ho spostato ora).

idea?

grazie mille.