Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 18-nov-2004, 05:54   #1 (permalink)
catrin está en el buen camino
 
Fecha de Ingreso: julio-2003
Mensajes: 53
buscar entre rangos

hola.
Alguien podria ayudarme con esto:
Tengo una tabla mysql con 4 campos año mes gasto consumo,
quiero realizar una consulta en que pueda obtener la suma de gasto acumulado desde enero a un mes x (variable) según año a elección.
Como podría hacerlos?????????.
Estaba tratando con algo así, pero no me resulta.

$resul=mysql_db_query("gestion","select consumo_h , gasto_h from agua where año='$b' and mes between 'Enero and '$a''");

Espero su ayuda.
Gracias
catrin está desconectado   Responder Citando
Antiguo 18-nov-2004, 06:37   #2 (permalink)
orchabel está en el buen camino
 
Avatar de orchabel
 
Fecha de Ingreso: noviembre-2002
Ubicación: Hundido en un rincón...
Mensajes: 395
Enviar un mensaje por ICQ a orchabel Enviar un mensaje por MSN a orchabel Enviar un mensaje por Yahoo  a orchabel
Manejas el campo mes como varchar???... me parece que es lo menos recomendado. Sería mucho más sencillo si lo tuvieras numérico.
__________________
BugHunter II
"si quieres un mañana mejor, piensa en ser mejor para un mañana"
orchabel está desconectado   Responder Citando
Antiguo 18-nov-2004, 06:41   #3 (permalink)
catrin está en el buen camino
 
Fecha de Ingreso: julio-2003
Mensajes: 53
si, en mi formulario esta con nombres (enero, febrero, etc,) para que fuera un campo numerico ya no podrí ir así?.
catrin está desconectado   Responder Citando
Antiguo 18-nov-2004, 08:48   #4 (permalink)
orchabel está en el buen camino
 
Avatar de orchabel
 
Fecha de Ingreso: noviembre-2002
Ubicación: Hundido en un rincón...
Mensajes: 395
Enviar un mensaje por ICQ a orchabel Enviar un mensaje por MSN a orchabel Enviar un mensaje por Yahoo  a orchabel
es mejor que utilizaras los meses como campo numerico asi colocarías en ves del nombre el numero del més

enero 1
febrero 2
.....
diciembre 12

es parte de la normalización de tablas. En ese caso el query que colocaste te funcionaría de este modo

$result=mysql_db_query("gestion","select consumo_h , gasto_h from agua where año='$b' and mes between 0 and $a");

donde $a sería el numero del mes.

en el formulario si lo tienes como una lista, puedes dejar el nombre para que se vea el mes y el valor numérico que es el que se guardaría.

<select mes>
<option value=1>Enero</option>
<option value=2>Febrero</option>
<option value=3>Marzo</option>
<option value=4>Abril</option>
.....
<option value=12>Diciembre</option>
</select>

saludos!
__________________
BugHunter II
"si quieres un mañana mejor, piensa en ser mejor para un mañana"

Última edición por orchabel; 18-nov-2004 a las 08:50.
orchabel está desconectado   Responder Citando
Antiguo 18-nov-2004, 09:01   #5 (permalink)
catrin está en el buen camino
 
Fecha de Ingreso: julio-2003
Mensajes: 53
Gracias...
catrin está desconectado   Responder Citando
Antiguo 23-nov-2004, 13:53   #6 (permalink)
catrin está en el buen camino
 
Fecha de Ingreso: julio-2003
Mensajes: 53
aún no puedo.....

Aun tengo el problema que no puedo obtener los datos requeridos, necesito obtener los datos para un periodo de tiempo año 2004 entre enero y mes elegido y lo mismo para el año anterios, año 2003. Mi problema ahora surge en que para el año 2003 me entrega los valores sin problema, pero el para el año 2004 me repite siempre el valor de enero.
Alguna idea:


<?
$a=$HTTP_POST_VARS['mesap'];
$b=$HTTP_POST_VARS['añosap'];
$c=$b-1;
{echo "$a";}
{echo "$b";}
{echo "$c";}
//coneccion a la base de datos
mysql_connect("localhost","root","root");
//ejecutamos sentencia sql
$resul=mysql_db_query("gestion","select consumo_h , gasto_h from agua where mes between 1 and $a and año=$b");
$resul2=mysql_db_query("gestion","select consumo_h , gasto_h from agua where mes between 1 and $a and año=$c");
?>
<table align ="center" border="2" bordercolor="blue">
<tr>
<tr><th colspan=4><B>Acumulado al mes de :<?php echo $a;?> </B></tr></th>
<tr><th>Item </th>
<th> Año <?php echo $b;?></th>
<th> Año <?php echo $c;?> </th>
<th>variación</th> </tr>
<?
//Mostramos los registros
While ( $row=mysql_fetch_array($resul))
While ($row2=mysql_fetch_array($resul2))
{
echo '<tr><td>Consumo</td>';
echo '<td>'.number_format($row[consumo_h]).'</td>';
echo '<td>'.number_format($row2[consumo_h]).'</td>';
echo '<td>'.$v.'</td><tr>';
echo '<tr><td>Gasto</td>';
echo '<td>'.number_format($row[gasto_h]).'</td>';
echo '<td>'.number_format($row2[gasto_h]).'</td>';
echo '<td>'.$v.'</td><tr>';
}
mysql_free_result($resul)
?>
</table>
catrin está desconectado   Responder Citando
Antiguo 24-nov-2004, 07:07   #7 (permalink)
orchabel está en el buen camino
 
Avatar de orchabel
 
Fecha de Ingreso: noviembre-2002
Ubicación: Hundido en un rincón...
Mensajes: 395
Enviar un mensaje por ICQ a orchabel Enviar un mensaje por MSN a orchabel Enviar un mensaje por Yahoo  a orchabel
tu proble no es de consulta.. es de impresión. Te recomendaría que no utilizaras esos ciclos anidados... sino que primero tomaras los valores con ciclos independientes, los almacenares en un array y luego si los imprimieras.

saludos!
__________________
BugHunter II
"si quieres un mañana mejor, piensa en ser mejor para un mañana"
orchabel está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 05:28.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93