Allora ragioniamo per esclusione:
1. il problema non è nel codice
2. il problema non è nelle versione del server
quindi...
...il problema deve essere nel database!

sei sicuro che quando fai
Codice PHP:
$num_rows mysql_num_rows($result); 
if (
$num_rows == '1') { 
.... 
$num_rows sia sempre 1?
non è che 'admin', '123' compare più volte in tabella?

fatti fare un
echo $num_rows;
per vedere se effettivamente è 1....