Foros del Web » Programando para Internet » PHP »

Datos erroneos en mysql

Estas en el tema de Datos erroneos en mysql en el foro de PHP en Foros del Web. Hola a todos: Soy nuevo en esto del php y me he topado con un problemilla bastante tonto que no logro resolver, me explico: tengo ...
  #1 (permalink)  
Antiguo 08/06/2013, 05:00
 
Fecha de Ingreso: junio-2013
Mensajes: 4
Antigüedad: 10 años, 10 meses
Puntos: 0
Datos erroneos en mysql

Hola a todos:

Soy nuevo en esto del php y me he topado con un problemilla bastante tonto que no logro resolver, me explico:

tengo una base de datos con una tabla donde voy registrando a los usuarios en la que existen varios campos, entre ellos uno llamado 'cuenta', en un momento dado necesito sumar 10 al número existente en una celda de ese campo, de manera que si había un 50, debería pasar a haber 60, muy sencillo... pues resulta que me suma siempre el doble, es decir, 20. Si pongo para que me sume 1... me suma dos, siempre el doble.

He usado diferentes codigos y siempre me suma el doble:

mysql_query('UPDATE registro SET cuenta =cuenta+10 WHERE email =\''.$email.'\'');

o también:

$count = mysql_query('SELECT cuenta FROM registro WHERE email =\''.$email.'\'')
or die(mysql_error());
$id = mysql_fetch_array($count);
$total = $id[0];
$total +=10;
mysql_query('UPDATE registro SET cuenta =\''.$total.'\' WHERE email =\''.$email.'\'');

En la base de datos el campo le tengo creado como INT, de 10 caracteres de longitud.

Una ayudilla, po favó.
  #2 (permalink)  
Antiguo 08/06/2013, 07:48
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Datos erroneos en mysql

Pon un echo "algo"; el inicio y al final del script a ver si se ejecuta mas de una vez. Saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 08/06/2013, 12:59
 
Fecha de Ingreso: junio-2013
Mensajes: 4
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Datos erroneos en mysql

Ya lo he probado, le puse un echo para mostrarme el valor recogido de la tabla, y me lo mostraba una vez, y además era el valor correcto, el problema viene al guardarlo, yo creo...

$count = mysql_query('SELECT cuenta FROM registro WHERE email =\''.$email.'\'')
or die(mysql_error());
$id = mysql_fetch_array($count);
$total = $id[0];
echo "$total"; => aqui el valor es el correcto.
$total +=10;
mysql_query('UPDATE registro SET cuenta =\''.$total.'\' WHERE email =\''.$email.'\'');

Gracias por la rapidez.
un saludo.
  #4 (permalink)  
Antiguo 08/06/2013, 13:11
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, 5 meses
Puntos: 2658
Respuesta: Datos erroneos en mysql

Es mejor usar comillas, de modo que los apostrofes queden en la cadena de la query:
Código PHP:
Ver original
  1. mysql_query("UPDATE registro SET cuenta = $total WHERE email = '$email'");

De otro modo, te puede convenir usarlo así:
Código PHP:
Ver original
  1. mysql_query('UPDATE registro SET cuenta = '.$total.' WHERE email = '''.$email.'''');
O como ya lo tenías:
Código PHP:
Ver original
  1. mysql_query('UPDATE registro SET cuenta = '.$total.' WHERE email = \''.$email.'\'');
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/06/2013 a las 13:16
  #5 (permalink)  
Antiguo 08/06/2013, 15:58
 
Fecha de Ingreso: junio-2013
Mensajes: 4
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Datos erroneos en mysql

Perdón, pero me he acelerado un poco, en el primer 'echo $total;' ya me suma 10.
Si quito la linea '$total +=10;' no suma nada, guarda el mismo valor.

$count = mysql_query('SELECT cuenta FROM registro WHERE email =\''.$email.'\'')
or die(mysql_error());
$id = mysql_fetch_array($count);
$total = $id[0];
echo "$total"; => aqui ya se ha sumado 10.
$total +=10; => si quito esta linea no suma nada.
mysql_query('UPDATE registro SET cuenta =\''.$total.'\' WHERE email =\''.$email.'\'');

Probaré lo de las comillas por si acaso...
  #6 (permalink)  
Antiguo 09/06/2013, 02:30
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Datos erroneos en mysql

Código PHP:
Ver original
  1. $total = $id[0];
  2.  echo "$total"; => aqui el valor es el correcto.
  3.  $total +=10;
entonces el incremento claramente es erroneo.
__________________
Fere libenter homines, id quod volunt, credunt.
  #7 (permalink)  
Antiguo 09/06/2013, 05:39
 
Fecha de Ingreso: junio-2013
Mensajes: 4
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Datos erroneos en mysql

Perdona repara2,

Como he corregido en el mensaje anterior, en el echo "$total"; ya aparece el valor incrementado en 10, no el valor correcto. Por lo que en la siguiente linea me vuelve a sumar 10... con lo que el incremento total es de 20.
Si quito la siguiente linea, $total +=10;, el dato lo recoge bien pero, evidentemente, no me suma nada.

Lo que he probado es a cambiar las comillas como indicó gnzsoloyo, y curiosamente la primera vez que lo ejecuté me hizo la operación perfectamente, pero después me volvió a fallar.

Etiquetas: mysql
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 05:17.