Because you told it to only pull the last row of data in the result set with this line:
$info = mysql_fetch_array($result, MYSQL_NUM);
This only pulls one row of data. If you want all of the results, then you'd have to put it into a while loop:
while($info = mysql_fetch_array($result, MYSQL_NUM)){
// do something for each row of data when you are in the while loop.
}
I personally recommend you use the POSTED data in your query, so you only get one result:
$sql = "SELECT * FROM access WHERE username = '".$_POST['username']."'";
You'd need to add some validation to make sure it exists, and whatnot, but that way, you can do things the same way you are trying to do now, and then pull that one row that you really need.