Ejecuta tu consulta SQL pero viendo los mensajes de error que Mysql pueda arrojar usando: mysql_error() tipo ...
Código PHP:
$result=mysql_query("select * from principales where fecha between '$fechaini' and '$fechafin' and estado=1 and tipo=1 order by id",$link) or die (mysql_error());;
Otra cosa que debes hacer siempre .. es NO ESPERAR que una consulta SQL te arroje resultados siempre .. por A o B motivo podría no arrojarte resultados .. así que mejor verificar que tengas resultados usando:
Código PHP:
if (mysql_mum_rows($result) > 0){
// ejecutas tus mysql_fech_xxx() .. y accedes al resultado.
} else {
// No hay resultados ...muestra el mensaje de error que corresponda.
}
Un saludo,