Foros del Web » Programando para Internet » PHP »

Sumar un valor positivo o negativo a un valor existente en MySql

Estas en el tema de Sumar un valor positivo o negativo a un valor existente en MySql en el foro de PHP en Foros del Web. Un cordila saludo. ¿Cómo puedo sumar desde el browser un valor positivo o negativo a uno almacenado en la base de datos utilizando php ? ...
  #1 (permalink)  
Antiguo 08/07/2009, 20:09
 
Fecha de Ingreso: julio-2009
Ubicación: Cancún, Quintana Roo
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Sumar un valor positivo o negativo a un valor existente en MySql

Un cordila saludo.

¿Cómo puedo sumar desde el browser un valor positivo o negativo a uno almacenado en la base de datos utilizando php?

Tengo una forma html donde hago echo del valor, lo puedo editar, sin embargo requiero sumarle o restarle un nuevo valor.

Total Puntos = 6
Agregar puntos = 4 (nuevo valor)
Total puntos = 10 (sin embargo solo se registran 4)

Creo que la solución seria hacer echo del valor existente y luego crear una función para sumarlo al valor nuevo de la forma html y enviarlo ya realizada la operación.

Conozco la sintaxis en php pero no puedo llevarlo a la base de datos.

Muchas Gracias.
  #2 (permalink)  
Antiguo 08/07/2009, 23:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Tema reasladado desde MySQL
  #3 (permalink)  
Antiguo 09/07/2009, 00:02
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

tendrias que hacer un UPDATE en tu base de datos... no se los campos que utilizas, pero seria algo asi:

SQL = "UPDATE tabla SET puntaje = '$puntaje_anterior'+'$puntaje_nuevo' WHERE condicion"

Donde tabla es tu tabla de mysql donde tienes almacenados los datos, $puntaje_anterior es el valor que sacas de la consulta, $puntaje_nuevo es el puntaje que le agregas, y condicion es la condicion para que solo te actualize esto en ciertos campos, digamos, donde el id sea igual al id sacado de la consulta...

Espero haberme explicado, cualquier duda, me avisas, que trato de explicar un poco mejor!

Un saludo,

Pablo.
  #4 (permalink)  
Antiguo 09/07/2009, 01:46
 
Fecha de Ingreso: mayo-2009
Ubicación: Madrid
Mensajes: 100
Antigüedad: 14 años, 11 meses
Puntos: 3
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Creo que en la update no necesitas recuperar el punta_anterior como te comentan con esta sentencia tendria que valerte
SQL = "UPDATE tabla SET puntaje = puntaje+$puntaje_nuevo' WHERE 'tu condicion'

Un saludo.
  #5 (permalink)  
Antiguo 09/07/2009, 06:51
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Cita:
Iniciado por gdecaceresr Ver Mensaje
Creo que en la update no necesitas recuperar el punta_anterior como te comentan con esta sentencia tendria que valerte
SQL = "UPDATE tabla SET puntaje = puntaje+$puntaje_nuevo' WHERE 'tu condicion'

Un saludo.
Bueno, ya tienes lo que necesitas pero aun mas necesitas leer un poco mas sobre sql para comprender lo que te han enviado.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #6 (permalink)  
Antiguo 09/07/2009, 08:55
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

gdecaceresr,

tienes razon, no hace falta recuperar el puntaje anterior. Es más, no se si funciona en sql, pero en casi todos los lenguajes, lo más comun seria hacer algo asi:

SQL =" UPDATE tabla SET puntaje+='$puntaje_nuevo' WHERE condicion".

Es decir, a tu puntaje actual, le sumas el valor de $puntaje_nuevo, sin necesidad de tener que repetir codigo.

Alguien con más experiencia el SQL me dira si esto es valido para este lenguaje, o no.

Saludos!
  #7 (permalink)  
Antiguo 09/07/2009, 19:36
 
Fecha de Ingreso: julio-2009
Ubicación: Cancún, Quintana Roo
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Muchas gracias a todos por sus respuestas, las voy a aplicar.

Es la primera vez que me suscribo a un foro y se siente bién que sin que te conozcan te ayuden.

Gracias nuevamente.
  #8 (permalink)  
Antiguo 09/07/2009, 20:04
 
Fecha de Ingreso: julio-2009
Ubicación: Cancún, Quintana Roo
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Bueno ya traté todas las formas cuidando la sintaxis y me aparece este error:

Error
consulta SQL:

SQL = "UPDATE `cd_releases` SET puntaje = '$puntaje_anterior'+'$puntaje_nuevo' WHERE `Title`"

MySQL ha dicho:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL = "UPDATE `cd_releases` SET puntaje = '$puntaje_anterior'+'$puntaje_nuevo' W' at line 1

Será la versión de mi MySql o tendra que ver el idioma?

Nuevamente gracias si me pueden orientar.

Última edición por cancunmedia; 09/07/2009 a las 21:11
  #9 (permalink)  
Antiguo 10/07/2009, 08:18
 
Fecha de Ingreso: julio-2009
Ubicación: Cancún, Quintana Roo
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Cita:
Iniciado por locoxchacho Ver Mensaje
tendrias que hacer un UPDATE en tu base de datos... no se los campos que utilizas, pero seria algo asi:

SQL = "UPDATE tabla SET puntaje = '$puntaje_anterior'+'$puntaje_nuevo' WHERE condicion"

Donde tabla es tu tabla de mysql donde tienes almacenados los datos, $puntaje_anterior es el valor que sacas de la consulta, $puntaje_nuevo es el puntaje que le agregas, y condicion es la condicion para que solo te actualize esto en ciertos campos, digamos, donde el id sea igual al id sacado de la consulta...

Espero haberme explicado, cualquier duda, me avisas, que trato de explicar un poco mejor!

Un saludo,

Pablo.
Pablo muchas gracias por tomarte el tiempo. Ya inserte el código php y no pasa nada. Seguramente estoy haciendo algo mal o más bién me falta algo por hacer bién.

En la forma tengo un campo de texto html donde se insertan los puntos de mis clentes y tengo un boton submit el cual me imagino tiene que interactuar con php para enviar el valor a MySql... Lo hace muy bién, pero no se suman los valores. Solamente se queda registrado el último valor.

Ya lo tengo arriba en el web y se puede interactuar, pero como soy nuevo en este foro no me permiten enviar links por el SPAM.

¿No será más facil si cada vez que inserte un valor se genere una lista en MySql y sume el total de la columna y haga echo para poder ve el resultado en el browser?

Agradezco mucho la ayuda. Yo no soy experto en esto, soy autodidacta y las circunstancias de la vida, bueno pues me han llevado a tener que aprender solito.

Saludos
  #10 (permalink)  
Antiguo 10/07/2009, 09:28
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Lo mejor es que primero cojas el valor actual , le sumes el nuevo valor y luego hagas el update:

Código PHP:
<?mysql_connect($user,$pass,$serv);
mysql_select_db($db);
$sql="SELECT * FROM tabla WHERE condicion";
$fila=mysql_query($sql);

$valorActual=$fila['puntos'];

// Y DESPUÉS

$valorNuevo=$valorActual $valorASumar;

// Y YA CON EL UPDATE

mysql_query("UPDATE tabla SET puntos=".$valorNuevo." WHERE condición");

?>
Voilá
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #11 (permalink)  
Antiguo 10/07/2009, 09:29
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Lo mejor es que primero cojas el valor actual , le sumes el nuevo valor y luego hagas el update:

Código PHP:
<?mysql_connect($user,$pass,$serv);
mysql_select_db($db);
$sql="SELECT * FROM tabla WHERE condicion";
$fila=mysql_query($sql);

$valorActual=$fila['puntos'];

// Y DESPUÉS

$valorNuevo=$valorActual $valorASumar;

// Y YA CON EL UPDATE

mysql_query("UPDATE tabla SET puntos=".$valorNuevo." WHERE condición");

?>
Voilá
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #12 (permalink)  
Antiguo 10/07/2009, 11:16
 
Fecha de Ingreso: septiembre-2008
Ubicación: Nuñez, Capital Federal
Mensajes: 423
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Si, si Mysql no te permite sumar directamente en el codigo sql, lo mas práctico que puedes hacer es lo que te recomienda chulosoy, que es como te habia dicho: rescatar el valor antiguo, sumarselo al nuevo, y luego si hacer el update.

Un saludo, espero que te haya servido nuestra ayuda, cualquier duda consulta!

Pablo.
  #13 (permalink)  
Antiguo 10/07/2009, 13:16
 
Fecha de Ingreso: julio-2009
Ubicación: Cancún, Quintana Roo
Mensajes: 9
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Muchisimas gracias a todos. Voy a aplicar el código y les comento, gracias nuevamente.
  #14 (permalink)  
Antiguo 30/11/2009, 08:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Sumar un valor positivo o negativo a un valor existente en MySql

Cita:
Iniciado por cancunmedia Ver Mensaje
Bueno ya traté todas las formas cuidando la sintaxis y me aparece este error:

Error
consulta SQL:

SQL = "UPDATE `cd_releases` SET puntaje = '$puntaje_anterior'+'$puntaje_nuevo' WHERE `Title`"

MySQL ha dicho:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SQL = "UPDATE `cd_releases` SET puntaje = '$puntaje_anterior'+'$puntaje_nuevo' W' at line 1

Será la versión de mi MySql o tendra que ver el idioma?

Nuevamente gracias si me pueden orientar.
el error, esta en la parte puntaje = '$puntaje_anterior'+'$puntaje_nuevo', mas arriba te indicaron que debes tomar el valor puntaje y no $puntaje_anterior

SQL = "UPDATE `cd_releases` SET puntaje = puntaje +'$puntaje_nuevo' WHERE `Title`"
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:03.