Foros del Web » Programando para Internet » PHP »

restar saldo en campo de sql con php

Estas en el tema de restar saldo en campo de sql con php en el foro de PHP en Foros del Web. hola estoy haciendo una web donde el usuario gasta dinero ya ingresado a la web... CREATE TABLE usuarios ( id INT NOT NULL AUTO_INCREMENT, nombre ...
  #1 (permalink)  
Antiguo 31/05/2013, 19:13
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Pregunta restar saldo en campo de sql con php

hola estoy haciendo una web donde el usuario gasta dinero ya ingresado a la web...

CREATE TABLE usuarios (
id INT NOT NULL AUTO_INCREMENT,
nombre varchar (30) null,
usuario varchar(30),
pass varchar(30),
permisos int(1),
imagen varchar(100) null,
saldo varchar(10),
fecha date null,
primary key(id)
);

como verán en la tabla usuarios hay un campo llamado saldo, yo quiero que el valor de ese campo por ejemplo 20 pesos... valla restando segun las compras del usuario,,, ejemplo, si el usuario gasto 5 pesos quiero que en el campo saldo figure 15 pesos...
como hago eso con php..

yo tengo una pagina donde esta el botón comprar que manda la variable del costo del producto a otra pagina donde esta un formulario con la variable saldo,, en ese formulario tengo una tabla que se llama total y ahi me marca los 15 pesos,,, pero no se como llevar eso a la base de datos,,
  #2 (permalink)  
Antiguo 31/05/2013, 21:51
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
Puntos: 0
Respuesta: restar saldo en campo de sql con php

Hola, pega tu codigo para saber el nombre de las variables que llevan los datos de compra y te ayudamos a hacer con esos datos un update del saldo del usuario.
Saludos
  #3 (permalink)  
Antiguo 01/06/2013, 03:02
 
Fecha de Ingreso: noviembre-2012
Mensajes: 12
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: restar saldo en campo de sql con php

Prueba esto

$consulta3 = "select * from usuario where id_usuario = $idusuario";
$luna3=mysql_db_query ($basedatos,$consulta3,$conexion);
while ($sol3 =mysql_fetch_array ($luna3))
{$credito_usuario = $sol3["credito_usuario"];}


$credito = $credito_usuario-$precio_negocio;

$consulta5 = "update usuario set credito_usuario='$credito' where id_usuario=$idusuario";
$luna5=mysql_db_query ($basedatos,$consulta5,$conexion);
  #4 (permalink)  
Antiguo 01/06/2013, 07:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: restar saldo en campo de sql con php

En realidad, leer la tabla para realizar la resta y luego actualizar, es un desperdicio de tiempo y recursos. Si ya tienes el valor a restar, es simplemente un UPDATE:
Código PHP:
Ver original
  1. $resultado = "UPDATE usuario set credito_usuario = credito_usuario - $credito where id_usuario=$idusuario";

Ahora bien, para que esto funcione deberías corregir ese espanto de campo que es poner un valor numérico como lo es un importe, como VARCHAR... Eso es un error mayúsculo e incomprensible.
¿Por qué estás usando un VARCHAR en lugar de un DECIMAL o un FOAT?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 01/06/2013, 08:33
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: restar saldo en campo de sql con php

perfectp al campo saldo lo puse como DECIMAL...
ahora bien,, el campo saldo y el campo precio son de dos tablas diferentes...
saldo de la tabla usuarios y precio de la tabla productos...

yo llamo a las dos tablas en mi oja=

Código PHP:
Ver original
  1. <?php
  2.   $consulta=mysql_query("select * from usuarios");
  3.       while($filas=mysql_fetch_array($consulta)){
  4.        $usuario=$filas['usuario'];
  5.        $pass=$filas['pass'];
  6.        $permiso=$filas['permisos'];
  7.        $fecha=$filas['fecha'];
  8.        $saldo=$filas['saldo'];
  9.        $id_usuario=$filas['id_usuario'];
  10.    }?>
  11.  
  12.  
  13. <?php
  14. if (isset($_POST['id_txt'])){  
  15.     $id=$_POST['id_txt'];
  16.     $nombre=$_POST['nombre'];
  17.     $precio=$_POST['precio'];
  18.     $mi_carrito[]=array('id'=>$id, 'nombre'=>$nombre, 'precio'=>$precio);
  19.     }

el if isset lo traigo por post del boton pagar...

Código PHP:
Ver original
  1. <?php
  2. if ($resultado) {
  3.  echo $resultado = "UPDATE usuarios set saldo =$saldo - '$precio' where id_usuario='$id_usuario'";
  4.  
  5. }else{
  6.     echo 'no tiene saldo';
  7.     }
  8.    
  9.    
  10. ?>


no me marca nada solo 'no tiene saldo'
  #6 (permalink)  
Antiguo 01/06/2013, 11:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: restar saldo en campo de sql con php

Insisto en una cosa: ¿para qué lees el saldo?
Si el valor del importe a restar ya lo tienes, el saldo deberías actualizarlo, no necesitas leerlo a menos que vayas a validar saldos negativos...
Otra cosa es que acá, en tu script, no estás haciendo el update, Sólo lo estás poniendo en una variable sin ejecutarlo.
O no nos estás poniendo toda la lógica del script como para entender lo que hace, o no estás haciendo nada...
Código PHP:
Ver original
  1. <?php
  2. // No muestras de donde sale "$resultado"
  3. if ($resultado) {
  4.   // Esto solo mostraria  en pantalla la query creada
  5.  echo $resultado = "UPDATE usuarios set saldo =$saldo - '$precio' where id_usuario='$id_usuario'";
  6.  
  7. }else{
  8.    // si la variable $resultado aún nos e inicializó, siempre te va a mostrar este mensaje.
  9.     echo 'no tiene saldo';
  10.     }  
  11.    
  12. ?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 04/06/2013, 16:34
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: restar saldo en campo de sql con php

Cita:
Código PHP:
Ver original
  1. <?php include ('../conexion.php');?>
  2. <p>
  3.   <?php
  4.  
  5.  
  6. $nombre=$_POST['nombre'];
  7. $direccion=$_POST['direccion'];
  8. $telefono=$_POST['telefono'];
  9. $correo=$_POST['correo'];
  10.  
  11. $mi_carrito=$_SESSION['carrito'];
  12. $pedido='-----Pedido-----<br><br>';
  13.  
  14. if (isset($mi_carrito)){
  15.     $total=0;
  16.     $pedido.='
  17.     <table width="361" border="0">
  18.  <tr>
  19.    <td colspan="4" align="center"><h3>Listado de su compra</h3></td>
  20.  </tr>
  21.  <tr>
  22.    <td width="85" bgcolor="#996633">PRODUCTO</td>
  23.    <td width="56" bgcolor="#996633">PRECIO</td>
  24.    <td width="81" bgcolor="#996633">CANTIDAD</td>
  25.    <td bgcolor="#996633">SUBTOTAL</td>
  26.  </tr>
  27.     ';
  28.    
  29.     for($i=0;$i<count($mi_carrito);$i++){
  30.         if ($mi_carrito[$i]<>NULL){
  31.     $subtotal=$mi_carrito[$i]['precio']*$mi_carrito[$i]['cantidad'];
  32.     $total=$total+$subtotal;
  33.     $pedido.='
  34.     <tr>
  35.    <td bgcolor="#EDDFDE">'.$mi_carrito[$i]['nombre'].'</td>
  36.    <td bgcolor="#EDDFDE">'.$mi_carrito[$i]['precio'].'</td>
  37.    <td bgcolor="#EDDFDE">'.$mi_carrito[$i]['cantidad'].'</td>
  38.     <td bgcolor="#EDDFDE">'.$subtotal.'</td>
  39.     </tr>
  40.    
  41.     ';
  42.    
  43.       }
  44.     }
  45. ?> 
  46.   <?php
  47.  
  48. $pedido.='<tr><tr> Total: '.$total ."<br>";
  49. $pedido.='</tr></tr>'; 
  50. echo $pedido;
  51. ?>
  52. </p>
  53. <p>
  54.   <?php
  55.   }
  56.   ?>
  57. </p>
  58. <?php
  59.   $consulta=mysql_query("select * from usuarios");
  60.      while($filas=mysql_fetch_array($consulta)){
  61.              $id=$filas['id'];
  62.              $nombre=$filas['nombre'];
  63.              $saldo=$filas['saldo'];
  64.      }
  65.  echo $id ."<br>";
  66.  echo $nombre  ."<br>" ;
  67.  echo $saldo=$saldo-$total  ."<br>";
  68.  
  69.  
  70.  
  71.  
  72. $sql = "UPDATE usuarios SET saldo =$saldo-$total where id=2";
  73.    $result = mysql_query($sql);
  74.    echo "cambios guardados";
  75.    
  76.  
  77.   ?>
bueno ahi logre restar el total que seria e precio del saldo del cliente,,
pero ahora solo me resta una sola ves,, cuando vuelvo a la pagina anterior y sumo algún articulo mas no lo resta en la base de datos solo me resto una sola ves...

Última edición por dario_rey_musico; 04/06/2013 a las 18:43

Etiquetas: boton, sql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:35.