Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

No se actualiza campo que debe aumentarse

Estas en el tema de No se actualiza campo que debe aumentarse en el foro de Mysql en Foros del Web. Hola! Miren tengo un pequeño problema con un código de "aumento" en MySQL. El código es éste: HTML Código HTML: Escriba el ID: <input type= ...
  #1 (permalink)  
Antiguo 19/09/2012, 15:08
 
Fecha de Ingreso: septiembre-2012
Ubicación: Jalisco, México
Mensajes: 38
Antigüedad: 12 años, 1 mes
Puntos: 1
Exclamación No se actualiza campo que debe aumentarse

Hola! Miren tengo un pequeño problema con un código de "aumento" en MySQL. El código es éste:

HTML
Código HTML:
Escriba el ID:
<input type="text" name="id_entrada">
Cantidad:
<input type="text" name="cant_ent">
<input type="submit" value="Reemplazar" onclick="document.location.reload();"> 
PHP
Código HTML:
$entrada=$_POST["cant_ent"];
$id_entrada=$_POST["id_entrada"];
mysql_query(" UPDATE articulo SET existencia = existencia+'.$entrada.' WHERE id = '.$id_entrada.' ", $conexion) or die(mysql_error());
Se supone que en el .php, al poner el ID y establecer cierta cantidad en el campo donde dice "Cantidad" debe aumentar "existencia" a "existencia+cantidad", o sea que si existencia = 2, y pongo "31" en el campo para aumentar, quedaría algo como "existencia=existencia+31", que resultaría "33" al final. Es una simple suma, pero no se realiza la acción y el MySQL no me bota ningun error.

Las conexiones para acceder a la base de datos y todo eso funciona bien. Creé una tabla llamada articulo, y en ella hay un campo llamado existencia, de tipo TINYINT(4). Con un archivo .php se supone que el código de arriba debería de incrementarla, pero no lo hace. Hay dos campos en un HTML, uno se llama "id_entrada" y el otro "entrada". ambos tipo texto. Desde consola si pongo:

Código HTML:
UPDATE articulo SET existencia = existencia+1 WHERE id = 3;
Me funciona perfecto, así que me imagino que es un problema con las variables, o algo así... Sinceramente no lo se

Será cosa del campo tipo "tinyint"? Será porque en donde declaro la variable "$entrada=$_POST["cant_ent"]" utilicé comillas? Error de sintaxis? O ven algo distinto? Necesito ayuda urgente porfavor ...
  #2 (permalink)  
Antiguo 19/09/2012, 17:12
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, 11 meses
Puntos: 2658
Respuesta: No se actualiza campo que debe aumentarse

Partimos del detalle que un TINYINT sólo puede almacenar números entre -128 y +127, si es con signo, y 0 a 255 si es UNSIGNED, por lo que cualquier numero mayor lo trunca.
Fuera de esos, habría que verificar el contenido de la sentencia con un ECHO, y no poner números entre apóstrofos. Pueden causar errores de conversión.
Por otro lado, me da la impresión de que tienes un error de sintaxis de PHP, puesto que las variables en este caso no requerirían encadenarse con puntos, al estar toda la sentencia encerrada entre comillas.
Revisa eso.
__________________
¿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; 19/09/2012 a las 21:13
  #3 (permalink)  
Antiguo 20/09/2012, 00:24
 
Fecha de Ingreso: septiembre-2012
Ubicación: Jalisco, México
Mensajes: 38
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: No se actualiza campo que debe aumentarse

Bueno, me urge esta base de datos, y pues no tengo mucho tiempo para estar cambiando muchas cosas. Que me recomiendas? Que cambie TINYINT por INT? O algún otro (manejo numeros que pueden ir desde 0 hasta 12,000)? Y creo que no entendí muy bien eso del ECHO, no se si pudieras re.explicarme eso de todo favor :P
  #4 (permalink)  
Antiguo 20/09/2012, 03:37
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, 11 meses
Puntos: 2658
Respuesta: No se actualiza campo que debe aumentarse

1) ¿Cuál es el rango máximo que usará ese valor?
Mira la descripción de los tipos de columna numéricos y pon lo que corresponda: http://dev.mysql.com/doc/refman/5.0/...umn-types.html
2) Un echo es una sentencia en PHP que te permite hacer que una cadena de texto salga por pantalla.
Lo que te estoy diciendo es que verifiques cómo ha quedado escrita la sentencia antes de enviarla a ejecutar, imprimiendola en pantalla y posteando acá lo que te sale.
__________________
¿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 21/09/2012, 10:47
 
Fecha de Ingreso: septiembre-2012
Ubicación: Jalisco, México
Mensajes: 38
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: No se actualiza campo que debe aumentarse

Jaja sí se que es un ECHO pero no sabía que era lo que tenía que ver aquí, gracias por explicarme.

Otra cosa, ya descubrí el problema, he aquí los códigos:

Este fue el rimero que puse:
Código HTML:
mysql_query(" UPDATE articulo SET existencia = existencia+'.$entrada.' WHERE id = '.$id_entrada.' ", $conexion) or die(mysql_error());
Y he aquí el nuevo:
Código HTML:
mysql_query("UPDATE articulo SET existencia = existencia+$entrada WHERE id = $id_entrada", $conexion) or die(mysql_error());
Pues, si no me equivoco, como me dijiste al inicio, era problema de los apóstrofos ( ' ), y ademas de los puntos ( . ), los quité en ambas variables y ya aumenta cantidad :D! (HURRA!)

¡¡Gracias por todo!! ¡¡En verdad muchas gracias!!
  #6 (permalink)  
Antiguo 21/09/2012, 10:57
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, 11 meses
Puntos: 2658
Respuesta: No se actualiza campo que debe aumentarse

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: aumentar, tabla, tinyint, update
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 00:58.