in reply to nesting foreach statements
It's slightly impossible to answer your question without seeing at least some of the implementation details, which we can't. Can you show us some of your code?
To give a vague answer, though, the answer would be, when you retrieve the changes, show the new data, comparing as you go along with the old data, and highlight (with, presumably, HTML tags, as you seem to be implying that you're using CGI) whatever has changed, then store the new data over top of the old data. Practically everything else is implementation-specific.