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


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


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 -
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             541

#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               26432

#2 Publicado: 1 Jul 2011 21:00



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

La estructura básica sería

// 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 sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             541

#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             541

#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               26432

#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 código 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 sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Administrador


  Karma               26432

#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 búsqueda 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 sueñas, se puede diseñar. FM 11 * VV 6 * PHP 5 * MySQL * Win 8.

Miembro

Asiduo

  Karma             541

#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 código 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 púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



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

Tópicos relacionados con operar con campos

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


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

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