¿Cómo sumarle a una celda una variable?

B

Tengo este update en donde lo que hago es actualizar en la bd el valor da esa variable, pero en realidad no necesito reemplazar el valor sino sumarlo

$ActualizarPssB = $db->query("UPDATE contadorej SET PssB='".$PssB."', PssB10Kg='".$PssB10Kg."', PssB30Kg='PssB10Kg".$PssB30Kg."'");

Probé de las siguientes formas y no me funcionó

PssB10Kg+'".$PssB10Kg."'
PssB10Kg=+'".$PssB10Kg."'
PssB10Kg='+".$PssB10Kg."'
PssB10Kg='PssB10Kg + ".$PssB10Kg."'

La única forma que se me ocurre es hacer un select agarrar el valor de la base de datos y sumarlo con el del php y ahi hacer el update, pero creo que debe haber una forma más fácil que no encuentro

Scottie

Ni idea de php, pero puedes hacer dos cosas:

  • Sumar en el campo final el propio campo más el nuevo valor.
  • Utilizar alguna función de suma propia del motor de la base de datos que uses.

PD: Menuda putamierda de sintaxis tiene php, que pesadilla las concatenaciones.

2 respuestas
cabron

Ummm que sql injection más rico

#2

Claro, por que ese código es culpa de Php que te obliga a hacerlo así de mal

1
beltez

Te da algún error al sumarlas ? Has comprobado que estas sumando 2 int y no sean strings ? De dónde sacas los valores de las variables ? es que creo que o no te estás explicando correctamente o yo me estoy haciendo un lío leyendo ese código. (por que sí, no es muy óptimo/legible que digamos)

#2 La sintaxis de PHP puede ser tan asquerosa como tu quieras, existen maneras de hacerla más "bonita" como en todos los lenguajes, por ejemplo interpolando variables.

1 respuesta
B

#4 No me da ningún error en algunos me pone 0 y en otros el valor de la variable sin sumarme la celda mysql

1 respuesta
beltez

#5 creo que ya entiendo, la consulta sería algo así:

$ActualizarPssB = $db->query("UPDATE contadorej SET PssB = {$PssB}, PssB10Kg = {$PssB10Kg}, PssB30Kg = {$PssB30Kg}");

Claramente adaptándola a tus necesidades pues la última concatenación que haces en tu consulta no la entiendo mucho.

En cuanto a la sumas sería algo tal que:

$PssB = 20; // (?)
$PssB10Kg = 10;

$PssB30Kg = $PssB + $PssB10Kg;

Esto último es un ejemplo pues no sé muy bien como las creas, de donde las sacas ni los valores que realmente almacenan entonces no puedo intentar verlo de otra manera..

1 1 respuesta
B

#6

El valor PssB se tiene que actualizar pero no sumar, digamos si es 0 en la base de datos ahora será 1 y si en la base de datos es 1 seguirá siendo 1

Pero sumarle $PssB10Kg al valor PssB10Kg (en la base de datos) y tambien sumarle $PssB30Kg al valor PssB30Kg de la base de datos

Sería como hacer SET PssB10Kg = PssB10Kg + $PssB10Kg pero no me funciona

Con respecto a la concatenación yo la hago así porque así aprendi (probablemente esté mal porque soy nuevo en esto) pero en SQL sería asi

UPDATE `contadorej` SET `PssB`=$PssB, `PssB10Kg`=$PssB10Kg, `PssB30Kg`=$PssB30Kg

Y yo intento hacer algo asi

UPDATE `contadorej` SET `PssB`=PssB + $PssB, `PssB10Kg`=PssB10Kg + $PssB10Kg, `PssB30Kg`= PssB30Kg + $PssB30Kg
1 respuesta
beltez

#7 Lo último que has puesto debería de funcionar, en caso de que no, los valores de las variables te has asegurado de que sean te tipo entero ? y las columnas de la base de datos, es de tipo entero (int)?

1 1 respuesta
B

#8 Ahí me di cuenta que el input en donde ingreso los datos es tipo text y obviamente las tablas son int, no me habia dado cuenta, muchas gracias!

1 1 respuesta
beltez

#9 Me alegro pues, cuidado con eso ! jajajajaja Un saludo.

1

Usuarios habituales