[PHP & MySQL] Mostrar registros ultimos 10 dias

gfxgfx
 
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
gfx gfx
gfx
21208 Mensajes en 4872 Temas por 20719 Usuarios - Último usuario: goleDewsDycle Mayo 20, 2012, 03:17:04
*
gfx*InicioAyudarssBuscarCalendarioIngresarRegistrarsegfx
gfxgfx
0 Usuarios y 2 Visitantes están viendo este tema.       « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [PHP & MySQL] Mostrar registros ultimos 10 dias  (Leído 1590 veces)
y0m4357r0
Principiantes
*
Desconectado Desconectado

Mensajes: 115


Ver Perfil
[PHP & MySQL] Mostrar registros ultimos 10 dias
« en: Julio 06, 2011, 11:14:32 »

Hola genteee!! Hay algo aca que no me salee!! rengue toda la mañana, y no encontre a nadie que tenga un problema como el mio, muchos similares pero no iguales, y no me doy cuenta como solucionarlo..

Tengo una base de datos que tiene avisos, cada aviso tiene un id, usuario, fecha, descripcion, etc.. Hice un sistemita uqe vos te registras y podes publicar avisos cada aviso lo guardo en esa tabla de mi db. Yo ahora lo que quiero es mostrar esos avisos, pero unicamente los que esten en el rango de los ultimos 10 dias. Los otros quedarian como caducados.
Las fechas las guarde haciendo date("Y, m, d") por lo que me la guarda en el formato aaaa/mm/dd

Ahora lo que hago es lo siguiente:
Código
Code (php):
function avisosActivos()
{
if(validarSession())
{
include_once("conect.php");
$fechaPermitida = date("Y-m-d") - 10; //  ??? ??? ??? ACA ME CLAVO, NO SE COMO RESTARLE 10 DIAS A LA FECHA DE HOY
$query = "SELECT id, descripcion, fecha, categoria FROM ".$taviso." WHERE usuario = ".$_SESSION['id']." && fecha < ".$fechaPermitida." ORDER BY fecha DESC"; // ??? ??? ???ACA TAMBIEN ME CLAVO, NO SE SI ESTA BIEN HECHA LA CONSULTA, PERO DEBE SER ALGO ASI..
$resultado = mysql_query($query, $conexion);
$i = 0;
while($reg = mysql_fetch_array($resultado))
{
 
}
}
}

Desde ya graciass!!! Espero alguien sepa! Smiley
« Última modificación: Julio 07, 2011, 09:30:09 por [u]nsigned » En línea
[u]nsigned
Moderator
*****
Desconectado Desconectado

Mensajes: 341


Download profile...


Ver Perfil
Re: [PHP & MySQL] Mostrar registros ultimos 10 dias
« Respuesta #1 en: Julio 07, 2011, 09:57:29 »

MySQL posee funciones para trabajar con fechas, asi que debrias dejarle esto a la capa de datos en lugar de hacerlo con PHP.

Por ejemplo este codigo:

Código
Code (php):
<?php
function avisosActivos()
{
if(validarSession())
{
include_once("conect.php");
$query = "SELECT id, descripcion, fecha, categoria FROM ".$taviso." WHERE usuario = ".$_SESSION['id']." AND fecha >= SUBDATE( CURDATE(), INTERVAL 10 DAY) ORDER BY fecha DESC";
$resultado = mysql_query($query, $conexion);
$i = 0;
while($reg = mysql_fetch_array($resultado))
{
 
}
}
}
?>
 

Veamos:

1. Ya no necesitamos la variable $fechaPermitida ya que la comprobacion de 'fechas validas' la haremos directamente con MySQL Wink

2. Nota este cambio en el codigo, en la consulta SQL:
Código
Code (sql):
AND fecha >= SUBDATE( CURDATE(), INTERVAL 10 DAY)

CURDATE: alias de "Current Day" esta funcion de MySQL nos devuelve la fecha actual.
SUBDATE: esta funcion sirve para restar entre fechas. Recive dos argumentos, el primeto es la fecha original, y el segundo el intervalo a restarle. En este caso nuestra feha original es el dia de hoy, el cual obtenemos con la funcion CURDATE(), y el segundo parametro es INTERVAL 10 DAY, es decir un itervalo de 10 dias (que se restaran)

Dicho esto, si volvemos a la consulta:
Código
Code (sql):
AND fecha >= SUBDATE( CURDATE(), INTERVAL 10 DAY)

Seria algo asi como "...y mientras fecha sea mayor o igual a (HOY - 10 dias)".


Espro haberme explicaod bien, te recomeindo leer la doc. oficia de mysql que esta en español y es muy util. Tiene capacidades muy potentes que al cocerlas no evitan un monton de cosas.
http://dev.mysql.com/doc/refman/5.0/es/date-and-time-functions.html

Saludos

PD: Te edite tu post  para que salga la sintaxis en colores.
En línea



No me interesa romper ventanas, me interesa criar pingüinos
y0m4357r0
Principiantes
*
Desconectado Desconectado

Mensajes: 115


Ver Perfil
Re: [PHP & MySQL] Mostrar registros ultimos 10 dias
« Respuesta #2 en: Julio 07, 2011, 10:50:03 »

No problem, edite tranquilo!  Grin

Buenisimooo!!! Muchisimas gracias!!! Cada vez me sorprende mas MySQL, sinceramente crei uqe lo unico que podias hacer con las consulta era cunsultar en un orden especifico, insertar y modificar datos.. Me voy a poner a leer eso!!

Muchas graciasss!!  Grin

Y la explicacion excelentee!! No queda dudas a nada! Smiley

Saludos! Smiley
En línea
gfx
Páginas: [1] Ir Arriba Imprimir 
gfx
Ir a:  
gfx
Powered by SMF 1.1.16 | SMF © 2006, Simple Machines
HDL Group hackers

gfx