Buenas.
Tengo un script que recibe un número en una variable y este puede ser tanto positivo como negativo. El problema que tengo es al aplicarlo en una row de la db pues si resulta que tiene que restar 3, suma 2 :S
$num=-3;
$query='UPDATE members SET creditos=creditos+$num WHERE uid='$uid'';
$result=mysql_query($query,$db);
¿Por qué?
He probado a poner paréntesis, pero como si no estubieran.
$query='UPDATE members SET creditos=creditos+($num) WHERE uid='$uid'';
$result=mysql_query($query,$db);
Pues a mi me funciona correctamente mirad,
Ingreso el valor en la tabla,
mysql> INSERT INTO PoC VALUES(1);
Query OK, 1 row affected (0.00 sec)
Modifico el valor y le sumo -2,
mysql> UPDATE PoC SET PoCField = PoCField + (-4);
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
El resultado inicial y final es,
mysql> SELECT * FROM PoC;
+----------+----------+
| PoCField | PoCField |
+----------+----------+
| 1 | -3 |
+----------+----------+
Nota, intetadlo haciendolo así, ya que tienes un escape de comillas simples,
$sql = "UPDATE members SET creditos=creditos+$num WHERE uid='$uid'";
Gracias por contestar.
Lo de las comillas simples ha sido porque las he puesto ahora en el uid corriendo xD
Pues no hay manera :S
No habrá alguna diferencia entre mysql en cmd y desde php?
Porque mejor no printeas la consulta antes de ejecutarla, la analizas y luego la ejecutas en el motor de base de datos.