Isolation levels are more complex than that. Depending on how you have things set, you may not be able to see data that was committed by other processes after the start of a transaction. For more on how this works, see this. It's from the MySQL docs, but PostgreSQL and Oracle work this way too.
UPDATE: corrected link
Comment on Re^3: fetchrow_array does not yield the same results as the sql query by itself does.