PHP Code:
$info2 = mysql_fetch_array($data2);
// . . .
while($info2 = mysql_fetch_array($data2)){
You've already fetched the first row into $info2. Calling it in the while now starts at the second record.
If you need to keep this if branch check (invert it with a ! and remove the empty braces instead of using an else), then change the while loop into a do/while loop and it will function properly. Alternatively use mysql_data_seek to change your record. Personally I'd alter the query since you don't need to use that if/else branch there at all; simply add a check on that field for either not an empty string (if its an empty string), or not is null check if its null.