Hola,
Primero, mysql_fetch_row() (
www.php.net/mysql_fetch_row) solo devuelve el array con indices numericos, asi que no funciona $row['campo'], solo con $row[2]. Si quieres usar los nombres de campo como indice, usa mysql_fetch_array() (
www.php.net/mysql_fetch_array) o mysql_fetch_assoc() (
www.php.net/mysql_fetch_assoc).
Segundo, cuando usas los indices numericos, el numero que identifica cada campo es el de la posicion en la sentencia select, comenzando en 0. Asi:
SELECT campo2, campo3, campo1
Los indices serian:
0: campo2
1: campo3
2: campo1
Si haces un select * el orden es el de la definicion de la tabla (creo).
Saludos.