A second WP_Query in a template is harmless right up to the point where you call the_post() on it. That method assigns the global $post and runs setup_postdata(),…
CodeIgniter’s Active Record resets itself after every get(), which is what you want almost always and a nuisance exactly once per paginated listing: the total and the page…