You would normally grab the status of the transaction when the transaction occurs, you can then store this status in your db with the order insert.
As for the problem with the order results page showing pending for all even when that is not the case have you confirmed these results in your db table? If you can post back with a copy of this results page it would help to determine what you are seeing here.