Buscar por fechas

La verdad recién comineso a programar con php, por eso necesito la ayuda de alguien con experiencia, mi
tengo en un select option de una página html las opciones de búsqueda por fechas de esta forma:
<select name="Fecha">
<option value="1">Cualquiera
</option><option value="2">Hoy y ayer
</option><option value="3">Ultimos 3 días
</option><option value="4">Ultimos 7 días
</option><option value="5">Ultimos 14 días
</option><option value="6">Ultimos 21 días
</opt1on><option value="7">Ultimos 31 días
</option></select>
Este select debe hacer ejecutar un query dependiendo de la opción que envíe hacia la página .php...
Mi problema es que no logro imaginarme muy bien la función para realizar dicha búsqueda.
Es decir, se me ocurre con un switch case comparar la fecha del sistema con los respectivos días anteriores pero a la hora de calcular las fechas de los días anteriores me quedo corto a causa de mi ignorancia, no se si exista una función en php o mysql que yo pueda implementar o que me pueda servir.
Por ese motivo le consulto.

1 respuesta

Respuesta
1
En MySql puedes usar la función DATE_SUB que te calcula una fecha restándole unos días a otra fecha dada. Sería así por ejemplo para una fecha siete días anterior a la de hoy:
Date_sub(curdate(), interval 7 day)
En cuanto a lo dels switch case me parece una buena forma de gestionar tus casos. De hecho sólo hace falta que en cada caso, les des un valor a una variable que luego uses para construir la sentencia SQL. Por ejemplo:
switch ($_POST["Fecha"]) {
case 2: $atras = 1; break;
case 3: $atras = 3; break;
case 4: $atras = 7; break;
Etc.
Y luego al construir la sentencia:
$sql = "SELECT * FROM tutabla WHERE tucampofecha >= DATE_SUB(CURDATE(), INTERVAL $atras DAY)";
Muchas gracias por su oportuna respuesta y por la claridad en tu explicación.
Has sido de gran ayuda.
Si tengo alguna otra pregunta no dudaré en acudir a usted.
Mil gracias :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas