Hola,
Depende del formato de las fechas. En PHP no hay un tipo DATE. Asi que cuando haces la comparacion entre los dos valores, PHP hara o una comparacion de cadenas de texto, o una comparacion de numeros. El DATE_SUB de MySQL no se que formato devuelve (timestamp, date, ...). Y no se el formato de tu campo 'FECHA' en la otra consulta. Puedes hacer un echo de ambos valores para ver si estan en el mismo formato. Y si en eese formato la comparacion funcionara.
Pero tambien podrias hacer la comparacion en la primera consulta, la de $fecha_mysql. Podrias hacer:
SELECT *, FECHA, (TO_DAYS(CURDATE()) - TO_DAYS(FECHA)) as dias_diferencia FROM tabla
Luego puedes hacer:
Código PHP:
if (15>$row['dias_diferencia']) {
echo 'caducado';
} else {
echo 'vigente';
}
Asi no debes hacer otra consulta. Las funciones de manejo de fechas de MySQL estan en
http://www.mysql.com/doc/en/Date_and...functions.html . Lo que hago es calcular la diferencia en dias entre la fecha actual y la del registro. Luego solo es comparar si ese valor es mayor de 15.
Saludos.