i campi sono in unix timestamp giusto? prova così
codice:
$query = "SELECT campo1,campo2,campo3
FROM $db_table
WHERE campo1 = 'si'
AND FROM_UNIXTIME(campo2,'%Y') < '1987'
AND campo3 < UNIX_TIMESTAMP(NOW())
ORDER BY data DESC";
ci potrebbe essere un problema
se in campo3 ci sono anche ore minuti e secondi, la terza condizione potrebbe non essere posta in modo corretto
potresti allora provare
codice:
$query = "SELECT campo1, campo2, campo3
FROM $db_table
WHERE campo1 = 'si'
AND FROM_UNIXTIME(campo2,'%Y') < '1987'
AND FROM_UNIXTIME(campo3, '%Y%m%d') < DATE_FORMAT(NOW(), '%Y%m%d')
ORDER BY data DESC";