Cluster, creo que te estas liando.
El while() ese es equivalente a este otro:
Código PHP:
while(false!=($resultados = mysql_fetch_array($consulta))) {
//bucle
}
Es decir, mientras mysql_fetch_array() no devuelva falso.
Esto a su vez seria equivalente a este if:
Código PHP:
etiqueta:
if (false!=($resultados = mysql_fetch_array($consulta))) {
// bucle
salta etiqueta; //pseudo instruccion que hace que la siguiente instruccion a ejecutar sea la marcada con 'etiqueta'
}
Es decir, en tu caso, la condicion se evalua 3 veces (2 registros y 1 el FALSE), y el bucle solo se deberia ejecutar 2 veces (los dos registros). Esto siempre y cuando no se modifique el "recordset" con alguna funcion tipo mysql_seek() o semejante.
Saludos.