Foros del Web » Programando para Internet » PHP »

seleccion por intervalos de tiempo

Estas en el tema de seleccion por intervalos de tiempo en el foro de PHP en Foros del Web. Hola, tengo un sitio para generar facturas, pero quiero que el usuario pueda ver una tabla con los datos principales de las facturas (en una ...
  #1 (permalink)  
Antiguo 29/07/2007, 16:59
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 0
seleccion por intervalos de tiempo

Hola, tengo un sitio para generar facturas, pero quiero que el usuario pueda ver una tabla con los datos principales de las facturas (en una tabla) en un intervalo de tiempo, es decir que el usuario pueda elegir ver informacion de las facturas por ejemplo desde 2007-07-25 hasta 2007-09-25, con este formato de fecha se guardan las fechas en la base de datos.

Se me ocurre hacer una consulta sencilla pues toda la informacion esta en una misma tabla, pero no se como tomar los dos valores de las fechas o como indicar en la consulta que lo que debe mostrar es solo las facturas que tengan fecha en ese intervalo. (se me ocurre que el usuario seleccione las fechas con un calendario en javascript)

Estoy trabajando con php5 y mysql, si alguien sabe le agradezco mucho que me colabore.

Gracias!!!
  #2 (permalink)  
Antiguo 29/07/2007, 18:34
 
Fecha de Ingreso: agosto-2006
Ubicación: Monterrey, N.L.
Mensajes: 67
Antigüedad: 17 años, 7 meses
Puntos: 2
Re: seleccion por intervalos de tiempo

Para extraer la información de la base de datos utiliza esta consulta:
Código PHP:
mysql_query("SELECT * FROM base_de_datos ORDER BY fecha ASC LIMIT fecha_inicial, fecha_final"
En esta caso:
(base_de_datos) sería el nombre de la base de datos.
(fecha) el nombre de la columna donde guardas los datos de las fechas.
(fecha_inicial) la fecha de inicio a extraer.
(fecha_final) la fecha final a extraer.

En cuanto a la consulta, sería un simple formulario donde tomarías 2 valores los cuales son: fecha_inicial y fecha_final.

Cualquier du
__________________
El mundo es tuyo.
Para mi fortuna el universo es demasiado grande.

  #3 (permalink)  
Antiguo 29/07/2007, 19:20
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: seleccion por intervalos de tiempo

ok, muchisimas gracias, no tenia idea como hacerlo, cuando lo haga te cuento.
Gracias!!!
  #4 (permalink)  
Antiguo 30/07/2007, 18:21
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: seleccion por intervalos de tiempo

Hola lord, gracias por tu ayuda, hice lo que me dijiste, pero hice la conuslta de esta forma

$sql = "SELECT (ot,fecha,nomclien,direccion,fijo,aparato,marca,si ntoma) FROM stf ORDER BY fecha ASC LIMIT '$fecha1', '$fecha2'";
pues no ncesito todosss los campos de la tabla y donde me dijiste que iba base de datos coloque el nombre de la tabla, en este caso stf, pues en lo que me dijiste no especificabas el lugar de la tabla.

Pro no funciona, no se que estoy haciendo mal, porfavor si puedes mira lo que te digo y me escribes. Te agradezco muchisimo.....
  #5 (permalink)  
Antiguo 30/07/2007, 18:54
 
Fecha de Ingreso: agosto-2006
Ubicación: Monterrey, N.L.
Mensajes: 67
Antigüedad: 17 años, 7 meses
Puntos: 2
Mensaje Re: seleccion por intervalos de tiempo

Cita:
Iniciado por dgomez Ver Mensaje
en lo que me dijiste no especificabas el lugar de la tabla.
Disculpa, me equiboque, en este caso seria:
(base_de_datos) sería el nombre de la tabla.

En cuanto a los datos que extraes de la tabla, lo que hago yo es guardarlos en un array, y ya que manejaras varios datos te recomiendo que lo hagas de esta forma:
Código PHP:
/*Realizas la consulta a la base de datos y la guardas en la variable $datos */
$datos mysql_query("SELECT * FROM stf ORDER BY fecha ASC LIMIT $fecha1, $fecha2");

    
/*Los datos extraídos de la tabla los convierte en un array llamado $datos2*/
    
while ($datos2 mysql_fetch_array($datos))
        {
        
$datos2[ot] = ($datos2[ot]);
        
$datos2[fecha] = ($datos2[fecha]);
        
$datos2[nomclien] = ($datos2[nomclien]);
        
$datos2[direccion] = ($datos2[direccion]);
        
$datos2[fijo] = ($datos2[fijo]);
        
$datos2[aparato] = ($datos2[aparato]);
        
$datos2[marca] = ($datos2[marca]);
        
$datos2[sintoma] = ($datos2[sintoma]);

        
/*Con el siguiente código muestras en pantalla el valor de cada Array: */    
        /*Ya depende de ti, la organización de los resultados. */    
        
echo "$datos2[ot]";
        echo 
"$datos2[fecha]";
        echo 
"$datos2[nomclien]";
        echo 
"$datos2[direccion]";
        echo 
"$datos2[fijo]";
        echo 
"$datos2[aparato]";
        echo 
"$datos2[marca]";
        echo 
"$datos2[sintoma]";
        } 
Para imprimir el valor de la variable solo utiliza este código:
Código PHP:
echo "$datos3[imagen_fecha]"
__________________
El mundo es tuyo.
Para mi fortuna el universo es demasiado grande.

  #6 (permalink)  
Antiguo 01/08/2007, 09:14
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: seleccion por intervalos de tiempo

Hola LORD, muchas gracias de nuevo por tu aporte, pero me sale que la hay un error en la consulta y no me muestra los datos, lo intente como dijiste pero no salio, entonces lo hice de esta forma que es como he mostrado los datos en otras paginas.


<?php
$fecha1= $_POST['fecha1'];
$fecha2= $_POST['fecha2'];
//conectarse al servidor mysql.
$link = @mysql_connect ("localhost", "root", "clave");
//abrir la base de datos
$conex=@mysql_select_db("meloyu",$link);
//consulta sql
$sql = "SELECT ot,fecha,nomclien FROM stf ORDER BY fecha ASC LIMIT '$fecha1', '$fecha2'";
$result = mysql_query($sql);

if($result==FALSE)
echo "<BR>Hay errores en la consulta sql";
else
echo "<BR>Consulta sql satisfactoria<P>";

echo "<table width=100% border=3 cellpadding=2 cellspacing=0 bordercolor=#C2DFEF align=center>
<TR>
<TH WIDTH=10%>OT</TH>
<TH WIDTH=10%>FECHA</TH>
<TH>NOMBRE</TH>
</TR>";


while($row = mysql_fetch_array ($result))
{
echo "<TR>
<TD WIDTH=10% ALIGN=CENTER>$row[ot]</TD>
<TD WIDTH=25% ALIGN=CENTER>$row[fecha]</TD>
<TD WIDTH=20% ALIGN=RIGHT>$row[nomclien]</TD>
</TR>";
}
echo "</TABLE>";
//cerrar la conexi&oacute;n
@mysql_close ($link);
?>

por favor si puedes revisalo y me cuentas, te lo agradeceria muchisimo!!!!!
  #7 (permalink)  
Antiguo 03/08/2007, 17:47
 
Fecha de Ingreso: agosto-2006
Ubicación: Monterrey, N.L.
Mensajes: 67
Antigüedad: 17 años, 7 meses
Puntos: 2
Re: seleccion por intervalos de tiempo

Cita:
Iniciado por dgomez Ver Mensaje
$sql = "SELECT ot,fecha,nomclien FROM stf ORDER BY fecha ASC LIMIT '$fecha1','$fecha2'";
Las variables $fecha1 y $fecha2 están entre comillas sencillas.

Elimina las comillas, es el único error que encuentro.

Saludos.
__________________
El mundo es tuyo.
Para mi fortuna el universo es demasiado grande.

  #8 (permalink)  
Antiguo 04/08/2007, 00:14
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 4 meses
Puntos: 4
Re: seleccion por intervalos de tiempo

Hola, las comillas simples no parecen ser el problema, es mas seria una forma de asegurar que el dato se ingrese tal como es. Pero si la memoria no me falla, el LIMIT, es solo para restringir cuantos registros se deben mostrar mas no para evaluar un rango de fechas, para ello seria el BETWEEN, asi un ejemplo:
Código PHP:
SELECT FROM matricula WHERE fecha BETWEEN   '2001-08-21' AND '2001-08-21' 
tendrias que adaptarlo a tu script PHP...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #9 (permalink)  
Antiguo 04/08/2007, 08:21
 
Fecha de Ingreso: julio-2007
Mensajes: 77
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: seleccion por intervalos de tiempo

Hola, si muchas gracias, al final lo habia resuelto con un between, pues encontre que los parametros para el limit deben ser numeros enteros, entonces no tomaba el valor de mis variable por ser formato de fecha. entonces lo resolvi de la forma en que e dices.
Muchas gracias!!!
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 06:38.