Write haof XML files: Vladimir
Hernández (
interco@linuxbaja.org)
Fecha: jue 24 mar 2005 - 18:52:02 CET
On Wed, 23 Mar 2005 13:04:24 -0300, Diego wrote
> Hola gente...
>
> Me presento.. me llamo Diego, soy
un principiante y tambien este es
> mi primera post..
>
> Resulta que tengo la siguiente
tabla en MySQL:
>
> | id | Col1 | Col2 | Col3 | Col4 |
Col5 | Col6 | Total |
>
> Y necesito sumar los campos de las
columnas 2, 4 y 5 y almacenar el
> resultado de cada registro en la
columna Total. Necesito que sea con
> todos los registros y de una sola
vez.
>
> Para sumar los registros y mostrar
el resultado en el navegador estoy
> utilizando el siguiente
script:
>
> echo "<table width='70%'
border='1' cellspacing='2' cellpadding='2'>";
> echo
>
"<tr><td>id</td><td>Col2</td><td>Col4</td><td>Col5</td><td>Total</td></tr>";
> //consulta los tipos de
familia
> $consulta="SELECT *,
Col2+Col4+Col5 AS total FROM tabla1";
>
$resultado=mysql_query($consulta);
>
> while
($columnas=mysql_fetch_array($resultado)) {
> extract ($columnas);
> echo
"<tr><td>$id</td><td>$Col2</td><td
align='right'>$Col4</td>
> <td
align='right'>$Col5</td><td
align='right'>$total</td></tr>";
> }
>
> Con esto consigo que me muestre
una tabla en el navegador con todos los
> registros y las sumas como yo
quiero en la columna Total (registro
> por registro).
>
> Mi problema es que no se como
guardar los resultados de cada suma en
> la columna Total de mi Tabla en la
DB. Intente colocando:
>
> $actualizar="UDPADTE tabla1 SET
Total=$total";
> mysql_query($actualizar);
>
> Pero con esto solo consigo que
guarde en la columna Total de la
> Tabla de mi DB el mismo valor en
todos los registros, que es el
> valor de la suma del ultimo
registro, y no el valor que corresponde
> a cada suma.
>
> ¿Alguien me podria dar una
idea de como hacerlo o donde encontrar la
> info que necesito? (busque por
todos lados pero no fui capaz de
> encontrar lo que
necesito)
>
> Gracias a todos
> Diego.
>
> --
> PHP Spanish Localization Talk
Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
Necesitas hacer la operación para cada registro.
Supongo que tienes algún
campo que tenga diferente valor en cada registro. Suponiendo
que se llama "id":
$selecciona_los_id_sql="SELECT id,col2,col4,col5 FROM tabla
1";
$selecciona_los_id_salida =
mysql_query($selecciona_los_id_sql,$db);
$cuantos = mysql_num_rows($selecciona_los_id_salida);
for($i=0;$i<$cuantos;$i++){
$array_temporal =
mysql_fetch_row($selecciona_los_id_salida);
$suma =
$array_temporal[1]+$array_temporal[2]+$array_temporal[3];
$actualizar_sql = "UPDATE tabla1 SET Total=$suma
WHERE id=$array_temporal[0]
LIMIT 1";
$actualizar_ya =
mysql_query($actualizar_sql,$db);
}
Claro, en el mismo ciclo FOR donde obtienes la suma y la
actualizas al total
puedes también poner tus instrucciones para que se
generen los renglones de la
tabla.
Dos notas:
1- Seguro que hay una forma más elegante de
hacerlo.
2- Te sugiero llamar a tus tablas por un nombre descriptivo,
igual que a los
campos (v.gr. "tabla_clientes", "monto","impuesto", etc..).
Saludos
-- Vladimir Hernández Linux Baja California Grupo de usuarios de GNU/Linux http://linuxbaja.org Linux registered user # 374079 counter.li.org -- PHP Spanish Localization Talk Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:24:09 CET