Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Filtrar por fecha MySQL en PHP

Estas en el tema de Filtrar por fecha MySQL en PHP en el foro de PHP en Foros del Web. Buenas tardes a todos! Soy nuevo en PHP y estoy desarrollando un blog con PHP y MySQL, hace menos de dos meses que estoy aprendiendo ...
  #1 (permalink)  
Antiguo 07/03/2018, 13:01
Avatar de guille_delfino  
Fecha de Ingreso: julio-2014
Ubicación: Buenos Aires, Argentina
Mensajes: 125
Antigüedad: 10 años, 3 meses
Puntos: 4
Filtrar por fecha MySQL en PHP

Buenas tardes a todos!

Soy nuevo en PHP y estoy desarrollando un blog con PHP y MySQL, hace menos de dos meses que estoy aprendiendo y hasta ahora he logrado crear el blog completo con paginación y con filtrar por categoria pero estoy trabado con el filtro por fecha.

Tengo una tabla llamada artiiculos con un campo llamado fecha de tipo TIMESTAMP y quiero ejecutar una sentencia SQL que traiga todos los datos según la fecha, está es la sentencia:

function filtrar_por_fecha($conexion, $fecha) {
$sentencia = $conexion->prepare("SELECT * FROM articulos WHERE fecha = $fecha");
$sentencia->execute();
return $sentencia->fetchAll();
}

Creo la variable: $fecha = '2018-03-06 20:20:14') para probar.

llamo a la función: $posts = filtrar_por_fecha($conexion, $fecha);

Luego hago un print_r($posts); para comprobar si trae datos, me arroja un arreglo vacio.

Creo que la variable fecha esta mal, calculo que debo convertir el string en otro tipo e datos para que funcione, no sé si estoy en lo correcto.

¿Alguién podría orientarme?

Muchas gracias a todos desde ya
__________________
Atentamente,

Guillermo Delfino
[email protected]
  #2 (permalink)  
Antiguo 07/03/2018, 13:51
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Filtrar por fecha MySQL en PHP

no filtres por fecha y hora, porque todos los post no fueron creados a la misma hora con minuto y segundo exactos, enfocate solo en la fecha:

Código PHP:
Ver original
  1. $fecha = "2018-03-01";
  2. $sentencia = $conexion->prepare("SELECT * FROM articulos WHERE DATE(fecha) = $fecha");
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 08/03/2018, 10:05
Avatar de guille_delfino  
Fecha de Ingreso: julio-2014
Ubicación: Buenos Aires, Argentina
Mensajes: 125
Antigüedad: 10 años, 3 meses
Puntos: 4
Respuesta: Filtrar por fecha MySQL en PHP

Muchas gracias por tu ayuda nuevamente, pude hacerlo con tu instrucción, ya que esta quisiera hacerte otra consulta.

En la tabla artículos columna fecha tengo 6 posts, 3 con fecha de marzo, dos con fecha de febrero y uno con fecha de Enero.

Quiero filtrar los artículos por mes de cada año, que en el sidebar aparezca Enero de 2018, Febrero de 2018 y Marzo de 2018, que los traiga de forma automatica cuestión que cuando publique en un mes aparezca pero si no hay publicaciones no aparezca nada. ¿Hay forma de hacerlo?

Yo pense en un select que traiga los rgistros pero si hay 3 registros con fecha 2018-03-07 solo muestre uno de ellos para que no me traiga todos los post de ese mes en el sidebar, pero no sé si es posible.

Muchas gracias por tu ayuda!
__________________
Atentamente,

Guillermo Delfino
[email protected]
  #4 (permalink)  
Antiguo 08/03/2018, 10:37
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 4 meses
Puntos: 263
Respuesta: Filtrar por fecha MySQL en PHP

El filtro por mes lo haces de esta manera:

Código PHP:
Ver original
  1. MONTH(fecha)

de esa manera seleccionas solo el mes

Podría ser algo asi:
Código PHP:
Ver original
  1. $sentencia = $conexion->prepare("SELECT fecha FROM articulos GROUP BY MONTH(fecha) ORDER BY MONTH(fecha) ASC");

pruebala y adaptala según los resultados que objengas
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 08/03/2018, 20:14
Avatar de guille_delfino  
Fecha de Ingreso: julio-2014
Ubicación: Buenos Aires, Argentina
Mensajes: 125
Antigüedad: 10 años, 3 meses
Puntos: 4
Respuesta: Filtrar por fecha MySQL en PHP

Sos un crack, un genio, muchas gracias por tu ayuda. Realmente se nota que sabes un montón. Espero algún día poder saber tanto como vos!
__________________
Atentamente,

Guillermo Delfino
[email protected]

Etiquetas: blog, filtrar, mysql, timestamp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:22.