Comunidad de diseño web y desarrollo en internet online

Seleccionar registros entre determinadas fechas.

Citar            
MensajeEscrito el 21 Nov 2006 06:52 am

Código :

$conn = mysql_connect("localhost","user","pass");
mysql_select_db("dbase",$conn);
$ssql = "Select distinct idcliente, ncliente from pedidos order by ncliente";
$rs = mysql_query($ssql,$conn);
while ($clientes= mysql_fetch_object($rs)){array_pop($clientes);
$sqlQry = "select *  from pedidos where pedidos.ncliente ='$clientes->ncliente'";
$rstPedidos = mysql_query($sqlQry,$conn);
while ($Pedidos= mysql_fetch_row($rstPedidos)){..

Bueno hasta ahí todo bien, ¿Cómo hago para recuperar sólo los registros entre determinadas fechas para un determinado cliente?
esto no me funciona:

Código :

$sqlQry = "select *  from pedidos where pedidos.ncliente ='$clientes->ncliente' AND pedidos.fecha<='2006-06-01' AND pedidods.fecha<='2006-06-30' order by pedidos.idpedido"




Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Nov 2006 09:43 am
Sería al revés, pedidos entre el '2006-06-01' y el '2006-06-30'

Código :

$sqlQry = "select *  from pedidos where pedidos.ncliente ='$clientes->ncliente' AND pedidos.fecha>='2006-06-01' AND pedidos.fecha<='2006-06-30' order by pedidos.idpedido"

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 21 Nov 2006 09:46 am
Busca sobre el operador between en SQL
Tomado de mysql.com
xpr BETWEEN min AND max

Si expr es mayor o igual que min y expr es menor o igual a max, BETWEEN retorna 1, de otro modo retorna 0. Esto es equivalente a la expresión (min <= expr AND expr <= max) si todos los argumentos son del mismo tipo. De otro modo la conversión de tipos tiene lugar según las reglas descritas al principio de la sección, pero aplicadas a todos los argumentos.

mysql> SELECT 1 BETWEEN 2 AND 3;
-> 0
mysql> SELECT 'b' BETWEEN 'a' AND 'c';
-> 1
mysql> SELECT 2 BETWEEN 2 AND '3';
-> 1
mysql> SELECT 2 BETWEEN 2 AND 'x-3';
-> 0


Código :

$sqlQry = "select *  from pedidos where pedidos.ncliente ='$clientes->ncliente' AND pedidods.fecha BETWEEN '2006-06-01' AND '2006-06-30' order by pedidos.idpedido" 


espero te sirva

Por Hg

33 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Nov 2006 02:25 pm
Hola Yranac; gracias por tu respuesta.

He probado esto, y no encuentra filas.

Código :

....
$sqlQry = 'select *  from pedidos where pedidos.ncliente ="'.$clientes->ncliente.'" ';
$sqlQry .= 'AND pedidos.freg>="2006-06-01" AND pedidos.freg<="2006-06-30" ';
$sqlQry .= 'order by pedidos.idpedido';
$rstPedidos = mysql_query($sqlQry,$conn);
if (!$rstPedidos) {echo "No pudo ejecutarse satisfactoriamente la consulta ($sql) " .
   "en la BD: " . mysql_error();
   exit;
   }
if (mysql_num_rows($rstPedidos) == 0) {
   echo "No se han encontrado filas, nada a imprimir, asi que voy " .
   "a detenerme.";
   exit;
   }
while ($Pedidos= mysql_fetch_row($rstPedidos)){ echo "acá lleno las tablas"};

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Nov 2006 02:30 pm
:roll: No tendrás ninguna fila que coincida con esos valores...

Por dmvalverde

150 de clabLevel



Genero:Masculino  

Extremadura

firefox
Citar            
MensajeEscrito el 21 Nov 2006 02:40 pm
Hola Hg:
gracias por tu respuesta:
De igual manera:
$sqlQry = 'select * from pedidos where pedidos.ncliente ="'.$pedidos->ncliente.'"';
$sqlQry .= 'AND pedidos.freg BETWEEN "2006-06-01" AND "2006-06-30" ';
$sqlQry .= 'order by pedidos.idpedido ';

LA consulta no arroja resultado.
El campo está definido como DATE. también he probado con DATETIME, algunos me sugieren Timestamp . Pero yo creo que es el orden en que se está manejando la consulta .; pero no encuentro la manera de pautarlo.

Por juce2005

100 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Nov 2006 03:08 pm
Si no te da el error que tienes

Código :

echo "No pudo ejecutarse satisfactoriamente la consulta ($sql) " .
   "en la BD: " . mysql_error();
en principio la consulta está bien prueba una cosa, en vez de ejecutarla metele un

Código :

echo $sqlQry;
y pruebala en el phpmyadmin (o lo que utilices) y a ver que te dice....

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.