Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.





Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
llevamos 20 años contigo

Ayuda al foro con tu donación


Búsqueda en los foros

Foros en Udias.com / PHP y MySQL / operar con campos
Autor Mensaje

Miembro

Asiduo

  Karma             659

#1 Publicado: 1 Jul 2011 19:56



Hola tengo un problemilla operando con campos, a pesar de haberme ayudado antes no consigo la solucion.
al operar con $unidades $precio y $total opera bien pero solo el primer registro de la lista, como hacer para que opere con todos los registros.

El resto es una tabla donde te da los datos y dentro de la tabla un formulario que manda inserta un registro de los $total, $factura y $iva con los que hemos operado y al final del todo un listado de los productos.

tengo esto:
<?php $date = date("Y-m-d");
?>
<?php
$unidades = $row_pedidos['unid_producto'];
echo $unidades ;
$precio = $row_pedidos['precioproducto'];
echo $precio ;
$total = 0;
$total = $total + ($unidades*$precio);
echo $total
?>
<?php
$iva = $total * 18 / 100;
$factura = $total + $iva;
?>
<p>
</p>
<table width="717" height="255" border="1" cellpadding="1" cellspacing="1">
<tr>
<td colspan="2" rowspan="4"><form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
<table align="center">
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="IDfactura" value="" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="IDproducto" value="<?php echo $row_pedidos['IDpedido']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="IDpedido" value="<?php echo $row_pedidos['IDpedido']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="fechafactura" value="<?php echo $date?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="importe" value="<?php echo $total?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="iva" value="<?php echo $iva?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="total" value="<?php echo $factura?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="usuario" size="32" value="<?php echo $_SESSION['MM_Username']?>"/></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="cantidadproducto" value="<?php echo $row_pedidos['unid_producto']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="hidden" name="desc_producto" value="<?php echo $row_pedidos['desc_producto']; ?>" size="32" /></td>
</tr>
<tr valign="baseline">
<td nowrap="nowrap" align="right"></td>
<td> </td>
<td><input type="submit" value="comprar" /></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1" />
</form></td>
<td width="194">base </td>
<td width="158"><?php echo $total?></td>
</tr>
<tr>
<td>Iva</td>
<td><?php echo $iva?></td>
</tr>
<tr>
<td>Transporte</td>
<td>consultar</td>
</tr>
<tr>
<td>Factura</td>
<td><?php echo $factura?></td>
</tr>
</table>
<p> </p>

</div>
<table width="200" border="0" cellspacing="5" cellpadding="5">
<tr>
<td>pedido</td>
<td>codigo</td>
<td>producto</td>
<td>unidades</td>
<td>precio</td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_pedidos['IDpedido']; ?></td>
<td><?php echo $row_pedidos['IDproducto']; ?></td>
<td><?php echo $row_pedidos['desc_producto']; ?></td>
<td><?php echo $row_pedidos['unid_producto']; ?></td>
<td><?php echo $row_pedidos['precioproducto']; ?></td>
</tr>
<?php } while ($row_pedidos = mysql_fetch_assoc($pedidos));
//listado de productos
?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
okela

Administrador


  Karma               32154

#2 Publicado: 1 Jul 2011 21:00



Para que te lo aplique a todos los registros encontrados tienes que utilizar un "while"

La estructura bsica sera

// Pongo el total a cero
$total = 0;

$query = "SELECT * FROM tabla WHERE campo = ".$valor;
$resultado = mysql_query ($query) or die (mysql_error ($erroralgo));
while ($filas = mysql_fetch_array ($resultado)) {
extract ($filas);

// Aqu recorro los resultados encontrados
$total = $total + ($unid_producto*$precioproducto);

}

// Aqu los totales
echo $total;
$iva = $total * 18 / 100;
$factura = $total + $iva;
echo "<br>";
echo $factura;


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueas, se puede disear. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             659

#3 Publicado: 2 Jul 2011 09:09



he puesto esto pero no consigo montarlo , no me funciona,
parece que hay un error de programacion, sabes cual es o com se pone.
gracias


<?php $date = date("Y-m-d");
?>

<?php
$unidades = $row_pedidos['unid_producto'];
echo $unidades ;
$precio = $row_pedidos['precioproducto'];
echo $precio ;
$total = 0;
$query = (SELECT * FROM `pedidos` WHERE `estado` = "no procesado" AND `usuario` = "luisen");
$result = mysql_query ($query) or die (mysql_error ($error_va mal ));
while ($filas = mysql_fetch_array ($resultado)) {
extract ($filas);
$total = $total + ($unidades*$precio);
}
echo $total
?>
<?php
$iva = $total * 18 / 100;
$factura = $total + $iva;
?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
okela

Miembro

Asiduo

  Karma             659

#4 Publicado: 2 Jul 2011 09:13



algo de esto debo haberlo puesto mal

$query = (SELECT * FROM `pedidos` WHERE `estado` = "no procesado" AND `usuario` = "luisen");
$result = mysql_query ($query) or die (mysql_error ($error_va mal ));
while ($filas = mysql_fetch_array ($resultado)) {
extract ($filas);
$total = $total + ($unidades*$precio);
}
al dejarlo asi no da error pero solo me le un registro no multiplica todos:

<?php $date = date("Y-m-d");
?>

<?php
$unidades = $row_pedidos['unid_producto'];
echo $unidades ;
$precio = $row_pedidos['precioproducto'];
echo $precio ;
$total = 0;

$total = $total + ($unidades*$precio);

echo $total
?>
<?php
$iva = $total * 18 / 100;
$factura = $total + $iva;
?>


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
okela

Administrador


  Karma               32154

#5 Publicado: 2 Jul 2011 11:10



Tenemos un problema, dentro del while solo puedes utilizar los nombres de los campos como variables, me explico

while ($filas = mysql_fetch_array ($resultado)) {
extract ($filas);
$total = $total + ($Nombredelcampounidades*$Nombredelcampoprecio);
}

Si has puesto bien el nombre del campo y has encontrado varios registros te dar dar el total sin problemas.

esto
$total = $total + ($unidades*$precio);
No puedo funcionar porque est fuera del while, con lo qe en el mejor de los casos te dar el valor de un solo registro.

Utiliza solo el cdigo que yo te he puesto, no los dos.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueas, se puede disear. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Administrador


  Karma               32154

#6 Publicado: 2 Jul 2011 11:17



La forma de trabajo siempre es la misma

1 Conectar con la base de datos
2 Realizar una bsqueda en la base de datos (SELECT)
3 Entrar en un bucle que recorra los registros encontrados (WHILE)
4 Realizar las operaciones que se necesiten dentro del bucle

Con estos cuatro pasos lo tienes resuelto


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Todo lo que sueas, se puede disear. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             659

#7 Publicado: 2 Jul 2011 19:52



muchas gracias al final lo he conseguido sois los mejores.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
okela
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin cdigo BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en prpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrn



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tpicos relacionados con operar con campos

buscar en dos campos...
Campos obligatorios en un formulario.
multiplicar dos campos , resultado en un tercero


Conectados: Invitados - 3
Miembros - 0
En verde usuarios ZDDR

Realizado con miniBB © 2001-2022
Para Udias.com © 1996-2022
Hosting con Interdominios