ahhh vc tem os campos DIA MES e ANO no banco separados??? cara se vc fizer uma consulta para ordenar ela vai fica muito pesada... coloca em vez deste 3 campos um campo DADE como o pgnalll flw, dai pra pegar os valores separados vc pega usando as funções YEAR,MONTH,DAY, e depois pra ordenar vc usa o ORDER BY
a consulta abaixo exibe as datas, separadas, ordenados pela data e exibindo somente os registros cuja data é maior que hoje.
SELECT DAY(campo_data) dia, MONTH(campo_data) mes, YEAR(campo_data) ano FROM tabela WHERE campo_data >= NOW()
ORDER BY campo_data ASC