Foros del Web » Programando para Internet » PHP »

Como hacer filtrado por fecha

Estas en el tema de Como hacer filtrado por fecha en el foro de PHP en Foros del Web. hola amigos como podria hacer para hacer un filtrado por fecha fecha inicio - fecha fin y me filtre mi lista; datos jalados de mysql ...
  #1 (permalink)  
Antiguo 11/01/2010, 09:10
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Como hacer filtrado por fecha

hola amigos como podria hacer para hacer un filtrado por fecha

fecha inicio - fecha fin y me filtre mi lista; datos jalados de mysql

la consulta se que se puede hacer con between; recibo las 2 fechas con post; pero como hago para que actualize los datos en la misma pagina.

al precionar el boton por ejemplo filtrar que se actualize la pag con los datos correspondientes

gracias
  #2 (permalink)  
Antiguo 11/01/2010, 09:45
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Respuesta: Como hacer filtrado por fecha

tenes que usar AJAX para hacer eso, pregunta en el foro de ajax, y sino mira en las FAQS que hay mucha info
  #3 (permalink)  
Antiguo 11/01/2010, 09:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Como hacer filtrado por fecha

No entendí tu pregunta. Sólo tienes que usar isset() para comprobar si se recibe el dato por $_POST y en ese caso, filtrar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 11/01/2010, 09:48
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Como hacer filtrado por fecha

Pero ajax es para no refrescar la pagina ?; lo que estoy pensando hacer es mandar la informacion por medio de un boton a otra pagina php(la cual va a hacer todo el proceso --> post, consulta, mensaje ...) y me mande el resultado a la anterior pagina.
  #5 (permalink)  
Antiguo 11/01/2010, 09:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Como hacer filtrado por fecha

¿Y si el resultado quieres en la misma página por qué quieres llamar a otra página? Envía el formulario a la misma página y como te dije, comprueba con isset() si se reciben datos y a partir de ahí procesarlos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 11/01/2010, 09:55
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Respuesta: Como hacer filtrado por fecha

claro, con ajax podes programar que checkee esos datos sin tener que refrescar la pagina completa.. ni usar ningun tipo de boton, solo usa una especie de timer y listo!

y a su vez, si tenes algun tipo de selector de fecha podes usar un evento de este control para que cuando el valor cambie , active el request ajax para tomar en ese momento el resultado de la consulta... Al margen de que la consulta se realize cada determinado tiempo por si sola
  #7 (permalink)  
Antiguo 11/01/2010, 09:57
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Como hacer filtrado por fecha

lo mando a la misma pagina, valido con isset(); recibo los datos con post y hago la consulta ? y en la tabla lo jalo ?

lo malo es que ya tengo una consulta; ni bien se habre la pagina me da todos los datos en la tabla;

Código PHP:
                     <?php
 
include('ProcesosPHP/conexion.php');                      
                      
$resultado = @mysql_query("SELECT c.CONTROL_CODIGO, CONCAT(a.ASOSIADO_NOMBRES,\" \",a.ASOSIADO_APELLIDOS) as NOMBRECOMPLETO,
                                                 c.CONTROL_FECHA_INGRESO, c.CONTROL_FECHA_SALIDA, c.CONTROL_HORAS_TRABAJADAS,
                                                 c.CONTROL_HORAS_EXTRAS, c.CONTROL_IMAGEN_INGRESO, c.CONTROL_IMAGEN_SALIDA
                                                FROM control c 
                                                INNER JOIN asosiado a USING (ASOSIADO_CODIGO)                                                
                                                "
);                    
                      while (
$row mysql_fetch_array($resultado))
                        {
                        
$contador $contador 1;    
?>

                                 
           <tbody>
            <tr class="row0">
             <td><?php echo $contador?></td>
             <td>check 
             </td>
             <td><?php echo $row['NOMBRECOMPLETO']; ?></td>
             <td align="center"><?php echo $row['CONTROL_FECHA_INGRESO']; ?></td>
             <td align="center"><?php echo $row['CONTROL_FECHA_SALIDA']; ?></td>
             <td align="center"><?php echo $row['CONTROL_HORAS_TRABAJADAS']; ?></td>
             <td align="center"><?php echo $row['CONTROL_HORAS_EXTRAS']; ?></td>
             <td align="center"><?php echo $row['CONTROL_IMAGEN_INGRESO']; ?></td>
             <td align="center"><?php echo $row['CONTROL_IMAGEN_SALIDA']; ?></td>
             <td align="center"><?php echo $row['CONTROL_CODIGO']; ?></td>          
            </tr>
            <?php ?>
como lo podria hacer; seria hacer 2 consultas o como
  #8 (permalink)  
Antiguo 11/01/2010, 10:12
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años
Puntos: 7
Respuesta: Como hacer filtrado por fecha

es que si hace un filtrado por fecha le agregas a ese select un where between ( FechaInicio, FechaTermino)
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #9 (permalink)  
Antiguo 11/01/2010, 10:38
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Como hacer filtrado por fecha

Código PHP:
SELECT c.CONTROL_CODIGOCONCAT(a.ASOSIADO_NOMBRES," \",a.ASOSIADO_APELLIDOS) as NOMBRECOMPLETO,
                                                 c.CONTROL_FECHA_INGRESO, c.CONTROL_FECHA_SALIDA, c.CONTROL_HORAS_TRABAJADAS,
                                                 c.CONTROL_HORAS_EXTRAS, c.CONTROL_IMAGEN_INGRESO, c.CONTROL_IMAGEN_SALIDA
                                                FROM control c 
                                                INNER JOIN asosiado a USING (ASOSIADO_CODIGO)
                                                WHERE  c.CONTROL_FECHA_INGRESO  BETWEEN '$FechaIngreso' and '$FechaSalida' 
esa seria mi consulta; pero lo malo es que si lo pongo asi al abrir la web no muestra ningun dato; solo muestra si inserto la fecha de inicio y de salida y hago cli en filtrar

como solucionaria eso amigos

LO VALIDE ASI, PERO HARIA 2 CONSULTAS; NO HAY UNA FORMA DE HACERLO CON 1 CONSULTA ?

Código PHP:
                if (isset( $FechaIngreso )){                        
                
$resultado = @mysql_query("SELECT c.CONTROL_CODIGO, CONCAT(a.ASOSIADO_NOMBRES,\" \",a.ASOSIADO_APELLIDOS) as NOMBRECOMPLETO,
                                           c.CONTROL_FECHA_INGRESO, c.CONTROL_FECHA_SALIDA, c.CONTROL_HORAS_TRABAJADAS,
                                           c.CONTROL_HORAS_EXTRAS, c.CONTROL_IMAGEN_INGRESO, c.CONTROL_IMAGEN_SALIDA
                                          FROM control c 
                                          INNER JOIN asosiado a USING (ASOSIADO_CODIGO)
                                          WHERE  c.CONTROL_FECHA_INGRESO  BETWEEN '$FechaIngreso' and '$FechaSalida'
                                          "
);  
                }
                else{
                
$resultado = @mysql_query("SELECT c.CONTROL_CODIGO, CONCAT(a.ASOSIADO_NOMBRES,\" \",a.ASOSIADO_APELLIDOS) as NOMBRECOMPLETO,
                                             c.CONTROL_FECHA_INGRESO, c.CONTROL_FECHA_SALIDA, c.CONTROL_HORAS_TRABAJADAS,
                                           c.CONTROL_HORAS_EXTRAS, c.CONTROL_IMAGEN_INGRESO, c.CONTROL_IMAGEN_SALIDA
                                          FROM control c 
                                          INNER JOIN asosiado a USING (ASOSIADO_CODIGO)"
);                         
                } 
  #10 (permalink)  
Antiguo 11/01/2010, 10:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Como hacer filtrado por fecha

La lógica sería algo como:
Código PHP:
Ver original
  1. if (isset($_POST['fecha'])) {
  2.     // Agregar a la consulta 'WHERE fecha BETWEEN inicio AND fin
  3. } else {
  4.     // Ejecutar la consulta tal y como está
  5. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 11/01/2010, 10:41
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años
Puntos: 7
Respuesta: Como hacer filtrado por fecha

es que como te dijeron arriba

debe meterlo dentro de un isset()

$SQL = "SELECT c.CONTROL_CODIGO, CONCAT(a.ASOSIADO_NOMBRES," \",a.ASOSIADO_APELLIDOS) as NOMBRECOMPLETO,
c.CONTROL_FECHA_INGRESO, c.CONTROL_FECHA_SALIDA, c.CONTROL_HORAS_TRABAJADAS,
c.CONTROL_HORAS_EXTRAS, c.CONTROL_IMAGEN_INGRESO, c.CONTROL_IMAGEN_SALIDA
FROM control c
INNER JOIN asosiado a USING (ASOSIADO_CODIGO)";

isset($fechas)
{
SQL .= "WHERE c.CONTROL_FECHA_INGRESO BETWEEN '$FechaIngreso' and '$FechaSalida' ";
}
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #12 (permalink)  
Antiguo 11/01/2010, 10:56
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Como hacer filtrado por fecha

si ya hice todo, me salio perfecto; ahora el problema es q es datetime y si pongo solo la fecha lo toma como si fuera 00:00:00 y las fechas que estan despues de esa hora ya no toma;

e tratado de ponerlo asi
$FechaIngreso = $_POST['txtFechaIngreso']." 00:00:00";
$FechaSalida = $_POST['txtFechaSalida']." 11:59:59";

pero lo malo es que asi me activa el isset como q si existe.
  #13 (permalink)  
Antiguo 11/01/2010, 11:05
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Como hacer filtrado por fecha

Puedes convertir a fecha en la consulta:
Código MySQL:
Ver original
  1. WHERE DATE(c.CONTROL_FECHA_INGRESO) BETWEEN ... AND ...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 11/01/2010, 11:13
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
De acuerdo Respuesta: Como hacer filtrado por fecha

todo perfecto muchas gracias :D

Etiquetas: fechas, filtros
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 10:42.