Holas McBlink
Pareciera que tienes una confusión con los conceptos: registros y campos... 
Dentro de $ok lo que estás guardando es un registro, esto es, una fila compuesta de todos los campos que tú preguntaste en tu consulta sql. O sea, $ok es un array(). 
Si nos dices que has recibido 3 registros, entonces son 3 arrays(). En el primer ejemplo que diste, lo que estás mostrando es sólo el primer campo de cada registro.
En el segundo ejemplo, estás pisando por cada iiteración las variables $ok1, $ok2 y $ok3 con los valores de los respectivos campos del último registro leído. 
Si quieres guardar en variables separadas cada uno de los registros, usa arreglos. Algo así:  
 Código PHP:
    while( $ok = mysql_fetch_array($sql) )
{
 $ok_guardado[$i] = $ok[0];  
  $i++;
} 
    
  Luego tendrás en el el array $ok_guardado el primer campo recibido de cada registro de la consulta. 
Si tu consulta tiene más de un campo, entonces deberás guardarlo en un array() bidimensional. 
 Código PHP:
    while( $ok = mysql_fetch_array($sql) )
{
 $ok_guardado[$i][0] = $ok[0];  
 $ok_guardado[$i][1] = $ok[1];  
 $ok_guardado[$i][2] = $ok[2];  
  $i++;
}