[eluser]coolfactor[/eluser]
You've composed a query string, but you haven't executed it to get back a query resultset.
Code:
$query = "SELECT f.email, u.user_id
FROM forgotten_password AS f
LEFT JOIN users AS u ON f.email = u.email
WHERE f.act_key = '$act_key'";
$result = $this->db->query($query); // <-- you need this or something like it.
if (!$result OR ($result->num_rows() < 1)) {
show_error('Reset ID passed is not in the database');
}