![]() |
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 |
Manejas el campo mes como varchar???... me parece que es lo menos recomendado. Sería mucho más sencillo si lo tuvieras numérico. |
si, en mi formulario esta con nombres (enero, febrero, etc,) para que fuera un campo numerico ya no podrí ir así?. |
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! |
Gracias... |
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> |
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! |
| La zona horaria es GMT -6. Ahora son las 00:55. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.