Hola Daniel,
podés hacer esto con las funciones de cálculo de fechas de MySQL, incluso ahorrándote la varialbe $mesActual
porque podés obtenerla con la función CURDATE()
dentro de la query.
La cuestión a resolver acá es que en caso de que el mes actual sea Enero, mes 1, el mes anterior es 0 y al no ser un més válido, la query devolverá vacío. Hay que hacer algo como:
SELECT * FROM tbl_concurso_participantes
WHERE MONTH(fecha) = MONTH(DATE_ADD(CURDATE(),INTERVAL -1 MONTH));
asumiendo que el campo datime se llama fecha.
Acá hay una buena explicación y una sintaxis alternativa usando aritmética modular para sacarse los 0 y los 13 de encima en el cálculo del mes: http://dev.mysql.com/doc/refman/5.0/es/date-calculations.html
Esto permite escribir tu query del mes actual como:
SELECT * FROM tbl_concurso_participantes
WHERE MONTH(fecha) = MONTH(CURDATE() AND id_user = $idUser ;
que compara el mes de la fecha almacenada con el mes dado por CURDATE() desde la DB.
Saludos!
PD: perdón por el posible cambio de nombre del campo con la fecha, pero que un campo conteniendo una fecha en datetime se llame "mes" me hace dificil pensalo como una fecha en vez de como un mes.