Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Select con Between no funciona

Estas en el tema de Select con Between no funciona en el foro de Mysql en Foros del Web. Buen dia foreros, necesito que alguien me ayude a generar esta la consulta. En un text box el usuarios escribe la fecha de inicio (fecha1) ...
  #1 (permalink)  
Antiguo 08/09/2010, 11:26
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 9 meses
Puntos: 0
Select con Between no funciona

Buen dia foreros, necesito que alguien me ayude a generar esta la consulta. En un text box el usuarios escribe la fecha de inicio (fecha1) y final (fecha2) de las fechas que quiere que se haga la consulta, pero no las lee .

Si coloco en la consulta directamente las fechas si la genera vean.
Código PHP:
("SELECT COUNT(edad) as cedad, edad FROM usuario_principal WHERE fecha BETWEEN '2009-07-01' AND '2009-07-05' GROUP BY edad;"); 
Pero si jalo las fechas del text anterior no genera nada, me pueden revisar el codigo
Código PHP:
("SELECT COUNT(edad) as cedad, edad FROM usuario_principal WHERE fecha BETWEEN ('fecha1') AND ('fecha2') GROUP BY edad;"); 
Gracias por ayudarme
  #2 (permalink)  
Antiguo 08/09/2010, 11:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Select con Between no funciona

Es un problema de programación. Los datos contenidos en los textbox no están llegando a la sentencia, y esto:

Código MySQL:
Ver original
  1. SELECT COUNT(edad) as cedad, edad
  2. FROM usuario_principal
  3. WHERE fecha BETWEEN ('fecha1') AND ('fecha2') GROUP BY edad;
Está comparando la fecha con las cadenas de texto "fecha1" y "fecha2".
Si estás trabajando en PHP, "fecha1" y "fecha2" no son variables. Para serlo requerirían estar escritas así:
Código MySQL:
Ver original
  1. SELECT COUNT(edad) as cedad, edad
  2. FROM usuario_principal
  3. WHERE fecha BETWEEN ('$fecha1') AND ('$fecha2') GROUP BY edad;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/09/2010, 12:06
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Select con Between no funciona

Gracias por responder
ya lo cambie y ademas puse un echo para ver si los valores pasaban pero no los esta pasando y no se por que.

Este es el resultado del echo:
Código PHP:
SELECT COUNT(edad) as cedadedad FROM usuario_principal WHERE fecha BETWEEN '' AND '' GROUP BY edad
que puede estar pasando? ademas puse mis variables asi:

$busqueda = $_POST[fecha1];
$busquedaa = $_POST[fecha2];
  #4 (permalink)  
Antiguo 08/09/2010, 12:25
 
Fecha de Ingreso: mayo-2010
Mensajes: 7
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Select con Between no funciona

<?php //tuconecttion ?>
<?php

if ((isset($_POST["MM_consul"])) && ($_POST["MM_consul"] == "form1")) {

$SQL = sprintf("SELECT COUNT(edad) as cedad, edad FROM usuario_principal WHERE fecha BETWEEN ('".$_POST['fechaini']."') AND ('".$_POST['fechafin']."') GROUP BY edad;");,


mysql_select_db($tubasededatos, $tuconexion);
$Result1 = mysql_query($SQL, $siso) or die(mysql_error());
}




?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>

</head>
<body>
<form id="form1" name="form1" method="post" action="">
<label>fehca ini
<input type="text" name="fechaini" />
</label>
fecha fin
<input type="text" name="fechafin" />
<input type="hidden" name="MM_consul" value="form1">
</form>
</body>
</html>
  #5 (permalink)  
Antiguo 08/09/2010, 12:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Select con Between no funciona

Tema de programación.
Pregunta en el foro de PHP; allí te responderán más rápido y mejor que acá.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 08/09/2010, 12:55
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Select con Between no funciona

Hola edanalvi

Es tal y como comenta gnzsoloyo, sobre tus variables.

Ahora lo que tendrias que hacer segun yo, es concatenar tus variables ya que al fin y al cabo son cadenas, por lo que tu consulta quedaria de la siguiente forma:


Código PHP:
mysql_query("SELECT COUNT(edad) as cedad, edad  FROM usuario_principal WHERE fecha BETWEEN ('".$fecha1."') AND ('".$fecha2."') GROUP BY edad",$tuconex); 
Y para comprobarlo harias lo mismo que hisiste imprimirlo con un echo.

Saludos!
__________________
Solo se... que no se nada!!! 0_o
  #7 (permalink)  
Antiguo 08/09/2010, 12:55
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Select con Between no funciona

Te diré algunas cosas generales.

- Los campos del formulario deben estar encerrados en las etiquetas <form></form>
- La etiqueta <form> debe indicar el método de envío. Para el caso <form method="post">
- Es mejor en PHP usar los array asi: $_POST['fecha1'], en lugar de $_POST[fecha1]
  #8 (permalink)  
Antiguo 08/09/2010, 18:59
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Select con Between no funciona

Huacho 12:
Estuve probando con lo que me dices pero por algun motivo no jala las variables y por lo tanto no pasa ningun valor a lo que la consulta da esto:

SELECT COUNT(edad) as cedad, edad FROM usuario_principal WHERE fecha BETWEEN ('') AND ('') GROUP BY edad;
Como veras pasa sin valores, que puede ser, ando perdida ?

Sin embargo si funciona si escribo los valores de la fecha en lugar de el nombre de la variable que trae del text box.

("SELECT COUNT(edad) as cedad, edad FROM usuario_principal WHERE fecha BETWEEN '2009-07-01' AND '2009-07-05' GROUP BY edad;");

Mil gracias por la ayuda.
  #9 (permalink)  
Antiguo 09/09/2010, 08:53
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Select con Between no funciona

Hola edalnavi

Entonces aplica lo que esta comentado claudiovega, por que si tu consulta al momento de imprimirla muestra los valores cuando se los asignas directamente tu falla puede estar en tus variables:

Código PHP:
$busqueda $_POST[fecha1];
$busquedaa $_POST[fecha2]; 
declaralas de esta forma:

Código PHP:
$busqueda $_POST['fecha1'];
$busquedaa $_POS['fecha2']; 
y tu consulta quedaria:

Código PHP:
mysql_query("SELECT COUNT(edad) as cedad, edad  FROM usuario_principal WHERE fecha BETWEEN '".$busqueda."' AND '".$busquedaa."' GROUP BY edad",$tuconex); 
Imprime para ver si te muestra los valores que le pasas.

Espero te sirva.

saludos
__________________
Solo se... que no se nada!!! 0_o
  #10 (permalink)  
Antiguo 09/09/2010, 21:59
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Select con Between no funciona

Les cuento, ya hice los cambios pero sigue sin pasar los valores pasa solo los apostrofes sin los valores vean el echo

SELECT COUNT(edad) as cedad, edad FROM usuario_principal WHERE fecha BETWEEN '' AND '' GROUP BY edad

La verdad no se que pasa?
  #11 (permalink)  
Antiguo 10/09/2010, 03:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Select con Between no funciona

A ver si se entiende bien:
1) La sentencia SQL está correctamente escrita. Tal es así que si pones valores fijos, la base devuelve resultados... Ergo: No es problema de SQL.
2) Tu ya te has dado cuenta de que el problema es que las variables no están entrando con datos. Eso es problema de programación de PHP y no de bases de datos. Ergo: Consulta en el Foro de PHP.
3) En este foro (Función de la sección de Base de Datos) no se deben tratar temas de programación. Son las normas.
4) Mientras más tardes en consultar a los expertos, que están en el Foro de PHP y no aquí, más vas a tardar en conocer la respuesta.

Postea en el foro de PHP.
Ellos te pueden ayudar a resolver el problema más rápidamente y mejor.


Suerte.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 10/09/2010, 18:54
 
Fecha de Ingreso: julio-2009
Mensajes: 77
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Select con Between no funciona

Muchas gracias a todos por su ayuda, ahorita voy ha plantear mi problema.

Etiquetas: select
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 03:55.