[Php-avanzado] Ventas entre dos fechas

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Jue Jul 22 14:25:26 ART 2010


Hola Leandro,

El jue, 22-07-2010 a las 14:25 +0000, Leandro Schereik escribió:
> Hola Leo le agregue comillas simples a las variables y salio.

	Me alegra... y acordate: no te compliques con la sintaxis.

> Pero tengo una duda: 
> Esta es la consulta correcta.
> $sql=mysql_query("SELECT * FROM cabecventas WHERE fecha BETWEEN
> '$fecha1' AND '$fecha2'");
> 
> 
> Y esta es la que devuelve 0, no entiendo porque no anda con esta.
> Donde estaria el error? mas alla que a partir de ahora voy a usar la
> estructura anterior.

	Acá me pierdo... mysql_query() devuelve un handler a la respuesta, sin
embargo tu asignación es "rara", porque típicamente la variable $sql
tiene la query a ejecutar (en este caso el select), y el resultado de
esto se suele cargar en una variable $res o $result... fijate la
secuencia en el apunte, al final del de PHP Inicial.

	Por otra parte, decís que devuelve 0, pero yo te pregunto: qué función
devuelve cero?
	Para saber la cantidad de registros, deberías llamar a
mysql_num_rows(), pero el parámetro de esta función es la salida de
mysql_query(), y no la query en sí misma como ponías unos mails atrás.

	Si el que devuelve 0 es mysql_num_rows() de la respuesta de
mysql_query(), significaría que el SELECT no devuelve ningún resultado.
Por esto te pedía que hagas un print() de la query generada y la copies
y pegues en phpmyadmin, para ver qué da de resultado.

	Por otra parte, la fecha debería estar en el formato del campo de la
tabla. Hay 3 o 4 formatos de tipo fecha, y si no usás exactamente el
mismo, la respuesta te dará vacío siempre, pero no dará error.

	Enviá la porción de código que tenés ahora para verla completa y
seguimos!


	Saludos!

> $sql=mysql_query("SELECT * FROM cabecventas WHERE fecha BETWEEN
> ".$fecha1." AND ".$fecha2);
> 
> Muchas Gracias 
> 
> Leandro
> 
> > From: leonardot en pegasusnet.com.ar
> > To: php-avanzado en pato2.fi.mdp.edu.ar
> > Date: Wed, 21 Jul 2010 16:09:15 -0300
> > Subject: Re: [Php-avanzado] Ventas entre dos fechas
> > 
> > Hola Leandro,
> > 
> > no sé como sabés que la query no da error... tu código no tiene
> ningún
> > control de errores!
> > 
> > Por ejemplo en este mail, la query no está bien formada porque le
> > faltan las comillas envolviendo a las fechas, y sin esas comillas
> MySQL
> > dará un error.
> 
> 
> > 
> > Por otra parte, mysql_num_rows() lleva como parámetro el handler al
> > recurso de la consulta, es decir, la salida de mysql_query(), y no
> el
> > string con la query...
> > 
> > Seguimos!
> > 
> > El mié, 21-07-2010 a las 19:01 +0000, Leandro Schereik escribió:
> > > Hola Leo: 
> > > La consulta no da error el tema es que hay ventas en ese rango de
> > > fechas ingresadas pero mysql_num_rows($sql) imprime 0. 
> > > 
> > > include("conexion.php");
> > > $fecha1="2010-7-07";
> > > $fecha2="2010-7-31";
> > > 
> > > $sql=mysql_query("SELECT * FROM cabecventas WHERE fecha BETWEEN
> > > $fecha1 AND $fecha2");
> > > print("Cantidad: ".mysql_num_rows($sql));
> > > 
> > > 
> > > 
> > > 
> > > 
> > > Textos
> > > completos
> > > id
> > > id_compr
> > > nom_compr
> > > ape_compr
> > > tel_compr
> > > fecha
> > > 
> > > Editar
> > > Borrar
> > > 3
> > > 2
> > > Leandro
> > > Schereik
> > > 4956698
> > > 2010-07-05 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 4
> > > 2
> > > Leandro
> > > Schereik
> > > 4956698
> > > 2010-07-05 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 5
> > > 2
> > > Leandro
> > > Schereik
> > > 4956698
> > > 2010-07-05 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 6
> > > 2
> > > Leandro
> > > Schereik
> > > 4956698
> > > 2010-07-05 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 7
> > > 2
> > > Leandro
> > > Schereik
> > > 4956698
> > > 2010-07-05 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 8
> > > 2
> > > Leandro
> > > Schereik
> > > 4956698
> > > 2010-07-05 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 9
> > > 2
> > > Leandro
> > > Schereik
> > > 4956698
> > > 2010-07-08 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 10
> > > 2
> > > Leandro
> > > Schereik
> > > 4956698
> > > 2010-07-08 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 15
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 16
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 17
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 18
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 19
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 20
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 21
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 22
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 23
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 24
> > > 11
> > > pepe
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 25
> > > 11
> > > pepe
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 26
> > > 11
> > > pepe
> > > 
> > > 
> > > 2010-07-19 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 27
> > > 10
> > > Lean
> > > 
> > > 
> > > 2010-07-21 00:00:00
> > > 
> > > Editar
> > > Borrar
> > > 28
> > > 11
> > > pepe
> > > 
> > > 
> > > 2010-07-21 00:00:00
> > > 
> > > Hola Leo: 
> > > La consulta no da error el tema es que hay ventas en ese rango de
> > > fechas ingresadas pero mysql_num_rows($sql) imprime 0. 
> > > 
> > > include("conexion.php");
> > > $fecha1="2010-7-07";
> > > $fecha2="2010-7-31";
> > > 
> > > $sql=mysql_query("SELECT * FROM cabecventas WHERE fecha BETWEEN
> > > $fecha1 AND $fecha2");
> > > print("Cantidad: ".mysql_num_rows($sql));
> > > 
> > > print($sql);
> > > 
> > > 
> > > > From: leonardot en pegasusnet.com.ar
> > > 
> > > > To: php-avanzado en pato2.fi.mdp.edu.ar
> > > > Date: Wed, 21 Jul 2010 15:43:18 -0300
> > > > Subject: Re: [Php-avanzado] Ventas entre dos fechas
> > > > 
> > > > Hola Leandro,
> > > > 
> > > > hacé un print($sql), copiá y pegá la query generada en
> phpmyadmin (o
> > > en
> > > > el cliente MySQL que uses) y fijate el error que da.
> > > > 
> > > > Este debuging es simple, pero si pusieran las querys en un IF
> para
> > > ver
> > > > si dan falso y luego mostrasen la salida de mysql_error()
> también se
> > > lo
> > > > ahorrarían...
> > > > 
> > > > El mié, 21-07-2010 a las 18:01 +0000, Leandro Schereik escribió:
> > > > > Hola Lucas anteponiendo comillas simples la cunsulta queda
> asi:
> > > > > $sql=mysql_query("SELECT * FROM cabecventas WHERE fecha
> BETWEEN
> > > > > ".'$fecha1'." AND ".'$fecha2');
> > > > > 
> > > > > 
> > > > > include("conexion.php");
> > > > > $fecha1="2010-7-07";
> > > > > $fecha2="2010-7-31";
> > > > > $sql=mysql_query("SELECT * FROM cabecventas WHERE fecha
> > > > > BETWEEN ".'$fecha1'." AND ".'$fecha2');
> > > > > echo("Cantidad: ".mysql_num_rows($sql));
> > > > > mysql_close();
> > > > > 
> > > > > 
> > > > > Me tira:
> > > > > 
> > > > > Warning: mysql_num_rows(): supplied argument is not a valid
> MySQL
> > > > > result resource in C:\wamp\www\practicaphp\php_avanzado\tesis
> > > \sitio
> > > > > \21-07-2010\calen.php on line 61
> > > > > 
> > > > > Cantidad: 
> > > > > 
> > > > > Y con 
> > > > > $sql="SELECT * FROM cabecventas WHERE fecha BETWEEN
> '{$fecha1}'
> > > AND
> > > > > '{$fecha2}';"; 
> > > > > el mismo warning.
> > > > > 
> > > > > Saludos
> > > > > 
> > > > > >Leandro, probá anteponiendo a las variables $fecha en la
> query,
> > > la
> > > > > comilla simple, tanto para abrir como para cerrar. después
> contá.
> > > > > Lucas
> > > > > 
> > > > > 
> > > > > 
> > > > >
> > >
> ______________________________________________________________________
> > > > > Porque tu vida necesita más espacio y comodidad. Muy pronto
> > > descubrí
> > > > > un nuevo Hotmail. Ver más
> > > > > _______________________________________________
> > > > > Php-avanzado mailing list
> > > > > Php-avanzado en pato2.fi.mdp.edu.ar
> > > > >
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> > > > -- 
> > > > 
> > > > Leonardo Tadei
> > > > leonardot en pegasusnet.com.ar
> > > > http://blog.pegasusnet.com.ar
> > > > Firma pública:
> http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> > > > 
> > > > _______________________________________________
> > > > Php-avanzado mailing list
> > > > Php-avanzado en pato2.fi.mdp.edu.ar
> > > > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> > > 2010-07-19 00:00:00 Editar Borrar 26 11 pepe 2010-07-19 00:00:00
> > > Editar Borrar 27 10 Lean 2010-07-21 00:00:00 Editar Borrar 28 11
> > > pepe 2010-07-21 00:00:00 
> > > > To: php-avanzado en pato2.fi.mdp.edu.ar
> > > > Date: Wed, 21 Jul 2010 15:43:18 -0300
> > > > Subject: Re: [Php-avanzado] Ventas entre dos fechas
> > > > 
> > > > Hola Leandro,
> > > > 
> > > > hacé un print($sql), copiá y pegá la query generada en
> phpmyadmin (o
> > > en
> > > > el cliente MySQL que uses) y fijate el error que da.
> > > > 
> > > > Este debuging es simple, pero si pusieran las querys en un IF
> para
> > > ver
> > > > si dan falso y luego mostrasen la salida de mysql_error()
> también se
> > > lo
> > > > ahorrarían...
> > > > 
> > > > El mié, 21-07-2010 a las 18:01 +0000, Leandro Schereik escribió:
> > > > > Hola Lucas anteponiendo comillas simples la cunsulta queda
> asi:
> > > > > $sql=mysql_query("SELECT * FROM cabecventas WHERE fecha
> BETWEEN
> > > > > ".'$fecha1'." AND ".'$fecha2');
> > > > > 
> > > > > 
> > > > > include("conexion.php");
> > > > > $fecha1="2010-7-07";
> > > > > $fecha2="2010-7-31";
> > > > > $sql=mysql_query("SELECT * FROM cabecventas WHERE fecha
> > > > > BETWEEN ".'$fecha1'." AND ".'$fecha2');
> > > > > echo("Cantidad: ".mysql_num_rows($sql));
> > > > > mysql_close();
> > > > > 
> > > > > 
> > > > > Me tira:
> > > > > 
> > > > > Warning: mysql_num_rows(): supplied argument is not a valid
> MySQL
> > > > > result resource in C:\wamp\www\practicaphp\php_avanzado\tesis
> > > \sitio
> > > > > \21-07-2010\calen.php on line 61
> > > > > 
> > > > > Cantidad: 
> > > > > 
> > > > > Y con 
> > > > > $sql="SELECT * FROM cabecventas WHERE fecha BETWEEN
> '{$fecha1}'
> > > AND
> > > > > '{$fecha2}';"; 
> > > > > el mismo warning.
> > > > > 
> > > > > Saludos
> > > > > 
> > > > > >Leandro, probá anteponiendo a las variables $fecha en la
> query,
> > > la
> > > > > comilla simple, tanto para abrir como para cerrar. después
> contá.
> > > > > Lucas
> > > > > 
> > > > > 
> > > > > 
> > > > >
> > >
> ______________________________________________________________________
> > > > > Porque tu vida necesita más espacio y comodidad. Muy pronto
> > > descubrí
> > > > > un nuevo Hotmail. Ver más
> > > > > _______________________________________________
> > > > > Php-avanzado mailing list
> > > > > Php-avanzado en pato2.fi.mdp.edu.ar
> > > > >
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> > > > -- 
> > > > 
> > > > Leonardo Tadei
> > > > leonardot en pegasusnet.com.ar
> > > > http://blog.pegasusnet.com.ar
> > > > Firma pública:
> http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> > > > 
> > > > _______________________________________________
> > > > Php-avanzado mailing list
> > > > Php-avanzado en pato2.fi.mdp.edu.ar
> > > > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> > > 
> > > 
> > >
> ______________________________________________________________________
> > > Descubrí un nuevo Hotmail: con más herramientas para una vida más
> > > práctica. Muy pronto. Ver más
> > > _______________________________________________
> > > Php-avanzado mailing list
> > > Php-avanzado en pato2.fi.mdp.edu.ar
> > > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> > -- 
> > 
> > 
> > Leonardo Tadei
> > leonardot en pegasusnet.com.ar
> > Pegasus Tech Supply
> > Tel: (+54)(+223) 471-2880
> > La Salle 1131 - Mar del Plata - Argentina
> > http://www.pegasusnet.com.ar / http://blog.pegasusnet.com.ar
> > http://www.prometeustech.com.ar / http://www.grupopegasus.com
> > Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
> > 
> > 
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> 
> 
> ______________________________________________________________________
> Para que en tu casilla haya mucho más de lo que te importa. Descubrí
> un nuevo Hotmail. Ver más
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado