i don't use mysql much but i have an idea of what might be wrong.
when you use $var=mysql_fetch_array($results) in an if() or while() statement, I THINK that as well as returning True, it'll move the cursor to the next record, which is why this works...
while($info=mysql_fetch_array($results)) {
...and then it moves to the next record for each loop.
but because you're using...
if($info=mysql_fetch_array($results)) {
...first, it's succeeding on that IF, because it finds a record.... BUT because you're returning only one record (MAX), it's moving the cursor on to a blank record after passing the IF. So when you go through the first loop in your WHILE statement, there are no records left.
try removing the IF altogether. if no records are returned, the while statement should simply not execute and just move on, which pretty much makes the if($info=mysql_fetch_array()) line redundant. try removing it and try again!
hope this helps. :-)