Cytat(trueblue @ 2.02.2017, 12:16:23 )

Tak bez AND, mój błąd.
Usunąłeś DESC z pierwszego bloku sortowania.
SELECT * FROM tabela1 WHERE $conditions ORDER BY FIELD(waga,\"5\",\"4\",\"3\",\"2\",\"1\",\"0\") ASC, data >= NOW() DESC
daje wyniki bez sensu, przykład:
5 2017-07-31 00:00:00
5 2017-11-30 00:00:00
5 2017-05-30 00:00:00
5 2020-12-10 15:57:08
5 2017-08-30 00:00:00
5 2017-08-08 00:00:00
5 2017-12-31 00:00:00
5 2020-05-15 11:18:09
5 0000-00-00 00:00:00
5 0000-00-00 00:00:00
gdzieś dużo niżej
2 2017-08-01 00:00:00
2 2017-05-04 00:00:00
2 2017-07-30 00:00:00
2 2017-05-01 00:00:00
2 2017-08-31 00:00:00
2 2017-12-01 00:00:00
2 2017-10-07 11:07:38
2 2017-12-31 00:00:00
2 2017-07-30 00:00:00
2 2017-07-30 00:00:00
a chodzi o to, żeby było np.
5 2020-12-10 15:57:08
4 2017-08-30 00:00:00
3 2017-08-08 00:00:00
2 2017-12-31 00:00:00
1 2020-05-15 11:18:09
5 0000-00-00 00:00:00
4 0000-00-00 00:00:00
3 0000-00-00 00:00:00
2 0000-00-00 00:00:00
1 0000-00-00 00:00:00
OK, trzeba zmienić kolejność na
SELECT * FROM tabela1 WHERE $conditions ORDER BY DATA >= NOW() DESC, FIELD(waga,\"5\",\"4\",\"3\",\"2\",\"1\",\"0\") ASC
i jest OK.
Dzięki za pomoc