Pregunta sobre result set

Hola gracias por atenderme y disculpa las molestias.. Tengo una base de datos en mysql y la reflejo en php, en la cual hay datos sobre un resumen diario de ventas que realiza mi esposa, ya que ella trabaja en la ONCE como vendedora y se me ocurrió hacerle en Mysql una pequeña BDD que reflejara las ventas diarias y para que sepa a fin de mes cuanto cobra en extras por ventas.
Con un select en php genero una página en la que vuelco todos los datos de la misma, bien.. Ahora quiero sumar las columnas de varios registros, pero lo quiero hacer en la misma página con varios querys para obtener los resultados de las mismas, creo que se realiza con un result set, pero no me doy cuenta como usarlo.., también he utilizado un sum(column) y obtengo lo que quiero, pero en otra página, yo quiero hacerlo en la misma, como si fuese el reflejo de una factura, con subtotales y totales, te comento que lo hago perfectamente en Access, pero quiero hacerlo en php, también se me ocurrió utilizar javascript ya que estoy perdido..
Gracias aprecio las respuestas..
Hugo/badalona

1 Respuesta

Respuesta
1
Desde PHP puedes obtener los registros realizando una consulta a mysql, como supongo que debes hacer. Por ejemplo:
$registros = mysql_query("SELECT * FROM ventas ORDER BY fecha");
Después para mostrar los registros, deberás acceder a cada uno de ellos, por ejemplo con:
$fila = mysql_fetch_assoc($registros);
Para lo que necesitas, a medida que muestres los registros puedes ir actualizando unas variables totalizadoras:
$total = $total + $fila["cobrado"];
y mostrar el total y los subtotales allí donde correspondan.
También puedes hacer una nueva consulta con esos subtotales cada vez que los necesites. Por ejemplo:
$totales = mysql_query("SELECT SUM(cobrado) as total FROM ventas WHERE fecha='04-27-2008');
$subtotal = mysql_fetch_assoc($totales);
echo $subtotal["total"];
<style type="text/css">
body {background-color:#006666; font-size:16px;}
th{background-color:#CCCCCC;}
td{color:#CCCCCC;}
.colorfont{color:#CCCCCC;}
A:link{text-decoration:blink; color:#CCFF00;}
A:visited{text-decoration:none; color:#00CCFF;}
A:active{ text-decoration:none; color:green;}
A:hover{text-decoration: underline; color:red;}
.tamano{font-size:30px; color:#990000}
.td{ background-image: url(imagenes/bg.gif);}
.sombreado{background-color:#990000;}
.adevolver{background-color: #0033CC;}
</style>
<script type="text/javascript">
function abrefoto(){
document.all.image.src="imagenes/estela_maritimo.jpg";
}
function cierrafoto(){
document.all.image.src="imagenes/estela7_39.jpg";
}
</script>
<body>
<table align="left" cellpadding="4" cellspacing="1" border="1">
<tr>
<td background="imagenes/bg.gif"><span class="colorfont"><a href="inicio.php">Inicio</a> | <a href="ingreso.php">Ingreso</a> | <a href="productos.php">Productos </a> | <a href="ingreso_umbral.php">Umbral</a> | <a href="guiarapida.php"> Guia </a> | <a href="salario2008.php"> Salario </a>| <a href="calendario2008.php">Calendario</a></span></td>
</tr>
</table>
<br />
<br />
<?
$mes=tiny_mce_markerGET['mes'];
if (strlen($mes)>0) {
$con = mysql_connect("localhost","root","");
mysql_select_db("resumendiario",$con);
$sql="select id,mes,dia,fecha,producto,cantidad,devolucion,valorproducto,ventas,tpv,anulados,valor,pagos,importe,total,((cantidad-devolucion)*valorproducto)+(tpv-(anulados*valor)) as sumaparcial,(((cantidad-devolucion)*valorproducto)+(tpv-(anulados*valor))- total)as adevolver from resumendiario where mes='{tiny_mce_markerGET['mes']}'";
$resultado=mysql_query($sql,$con);
?>
<h1 align="center"><font class="colorfont">Listado General del Resumen Diario</font></h1>
<div align="center" style="overflow: auto; width:1300px; height:710px;">
<table width="1153" border="0" align="center" cellpadding="0" >
<th width="31" align="center" class="sombreado"><font class="colorfont">Día</font></th>
<th width="50" align="rigth" class="sombreado"><font class="colorfont">Fecha</font></th>
<th width="59" align="center" class="sombreado"><font class="colorfont">Producto</font></th>
<th width="64" align="center" class="sombreado"><font class="colorfont">Cantidad</font></th>
<th width="80" align="center" class="sombreado"><font class="colorfont">Devolución</font></th>
<th width="103" align="center" class="sombreado"><font class="colorfont">ValorProducto</font></th>
<th width="50" align="center" class="sombreado"><font class="colorfont">Ventas</font></th>
<th width="40" align="center" class="sombreado"><font class="colorfont">T.P.V</font></th>
<th width="66" align="center" class="sombreado"><font class="colorfont">Anulados</font></th>
<th width="77" align="center" class="sombreado"><font class="colorfont">ValorAnul.</font></th>
<th width="43" align="center" class="sombreado"><font class="colorfont">Pagos</font></th>
<th width="100" align="center" class="sombreado"><font class="colorfont">ImportePagos</font></th>
<th width="37" align="center" class="sombreado"><font class="colorfont">Total</font></th>
<th width="89" align="center" class="sombreado"><font class="colorfont">SumaParcial</font></th>
<th align="center" class="sombreado"><font class="colorfont">ADevolver</font></th>
<th align="center" class="sombreado"><font class="colorfont">Modificar</font></th>
</tr>
<?
while ($fila = mysql_fetch_assoc($resultado)) {
?>
<tr>
<input type="hidden" value="<? echo $fila["id"]."<br>" ?>"/></td>
<input type="hidden" value="<? echo $fila["mes"]."<br>" ?>"/></td>
<td align="left"><? echo $fila["dia"]."<br>" ?></td>
<td align="left"><? echo $fila["fecha"]."<br>" ?></td>
<td align="center"><? echo $fila["producto"].'<br>'?></td>
<td align="center"><? echo $fila['cantidad'].'<br>' ?></td>
<td align="center"><? echo $fila['devolucion'].'<br>' ?></td>
<td align="center"><? echo $fila['valorproducto'].'<br>' ?></td>
<td align="center"><? echo $fila['ventas'].'<br>' ?></td>
<td align="center"><? echo $fila['tpv'].'<br>' ?></td>
<td align="center"><? echo $fila['anulados'].'<br>' ?></td>
<td align="center"><? echo $fila['valor'].'<br>' ?></td>
<td align="center"><? echo $fila['pagos'].'<br>' ?></td>
<td align="center"><? echo $fila['importe'].'<br>' ?></td>
<td align="center"><? echo $fila['total'].'<br>' ?></td>
<td align="center" class="td"><? echo $fila['sumaparcial'].'<br>' ?></td>
<td align="center" class="adevolver"><? echo $fila['adevolver'].'<br>' ?></td>
<td align="center"><a href="modificar.php?id=<? echo $fila['id'] ?>">modificar</a></td>
</tr>
<? } ?>
</table>
</div>
<table align="center" border="1" cellpadding="3">
<tr>
<th>Suma:</th>
<td><a href="sumames.php?mes=<? echo "{tiny_mce_markerGET['mes']}" ?>">SumaMes</a></td>
</tr>
</table>
<? } else { ?>
<table align="center">
<tr>
<td align="center"><img id="image" height="310" width="400" border="1" src="imagenes/estela7_39.jpg " onMouseOver="javascript:abrefoto()" onMouseOut="javascript:cierrafoto()" /></td>
</tr>
</table>
<form name="formulario" method="get" action="inicio.php">
<table align="center" cellpadding="4" cellspacing="1" border="1">
<tr>
<th colspan="2" class="sombreado"><font class="colorfont">Consulta Resumen Diario 2008</font></th>
</tr>
<tr>
<th align="left">Ingresar Mes</th>
<td><select name="mes" >
<option value="jun">Junio</option>
<option value="jul">Julio</option>
<option value="ago">Agosto</option>
<option value="sep">Septiembre</option>
<option value="oct">Octubre</option>
<option value="nov">Noviembre</option>
<option value="dic">Diciembre</option>
</select>
</td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="Enviar" /></td>
</tr>
</table>
</form>
<br />
<br />
<div align="center"><img src="imagenes/logoonce01.gif" /></div>
<? } ?>
Hola david, muchas gracias por la respuesta, y me viene muy bien tu respuesta, aquí te envío mi código para que lo veas, y el query se lo quería hacer al principio para obtener los resultados al pie del de página estos sumados en las columnas sumaparcial y a devolver, y después imprimirlos en pdf, que creo que algo lo tengo resuelto.. ¿lo qué no tengo muy claro si puedo hacer dos querys a la vez o estoy empecinado en algo que no es? Gracias de nuevo
Hugo
Si así te funciona ya estará bien. Desde luego, no hay ningún problema en hacer más de un query a la vez. Puedes hacer tantos como necesites. Como ya te dije anteriormente, puedes hacer uno para mostrar los registros y otro para calcular los subtotales. Simplemente asígnalos a variables distintas y no tendrás problema.
David, te agradezco la información que me brindaste, me fue muy útil y aplique lo que me dijiste con unos leves retoques y funciona de maravillas, ademas como estoy lanzado hice algunas cositas más..
No quería dejar de saludarte y agradecerte el gesto.
Hugo Herrera / Badalona
Muy amable por tu parte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas