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

Problema con la isercion

Estas en el tema de Problema con la isercion en el foro de Mysql en Foros del Web. Hola a todos, Ante todo, mis mas sinceras disculpas si la pregunta que hago es redundante o la he formulado en un hilo incorrecto. Me ...
  #1 (permalink)  
Antiguo 13/04/2010, 06:58
 
Fecha de Ingreso: diciembre-2009
Mensajes: 3
Antigüedad: 14 años, 4 meses
Puntos: 0
Problema con la isercion

Hola a todos,

Ante todo, mis mas sinceras disculpas si la pregunta que hago es redundante o la he formulado en un hilo incorrecto.

Me he decidido a buscar en algun foro la solucion a mi problema porque es la cosa mas extranya que he visto en mi vida. Estoy haciendo practicas en una empresa, he intentado buscar el origen del problema con mi jefe y no hay manera.



En primer lugar hago una consulta:

$pidAdditionalOption = mysql_query(
"
SELECT pa.pid
FROM `products_translation` AS pt, products_assignment AS pa
WHERE pt.group_by = '$additionalOption'
AND pt.pid = pa.pid
AND pa.parent_id = '$parent_id'
", $this->modSys->engine->sql);
He probado esta consulta por separado en "phpmyadmin" y funciona bien. (solo devuelve un valor)

En segundo lugar extraigo el dato de $pidAdditionalOption

$rowPid = mysql_fetch_row($pidAdditionalOption);

Y al final intento insertar ese dato en otra tabla

mysql_query(
"
INSERT INTO products_assignment (parent_id, pid, pack)
VALUES ('$pid','$rowPid[0]','-1')
", $this->modSys->engine->sql);

Hasta aqui todo parece normal, el inconveniente es que no hace la insercion de los valores.
He probado de todo. Aqui os pondre solo alguna de las muchas opciones que he probado:

Si la variable $rowPid[0] la sustituyo por un valor numerico, hace la insercion.

Si incremeto el valor para convertirlo en un dato numerico(en caso que no lo fuese), hace la insercion,
pero evidentemente con un valor incrementado que no me vale.
$b=$rowPid[0];
$b++;
mysql_query(
"
INSERT INTO products_assignment (parent_id, pid, pack)
VALUES ('$pid','$b','-1')
", $this->modSys->engine->sql);

Asi que despues de incrementarlo decidi decrementarlo.
$b=$rowPid[0];
$b++;
$b--;
mysql_query(
"
INSERT INTO products_assignment (parent_id, pid, pack)
VALUES ('$pid','$b','-1')
", $this->modSys->engine->sql);

Y para mi asombro, no hace la dichosa insercion. Alguna idea?

Supongo que es porque hoy es Martes13...

P.D: Perdon por las tildes, pero estoy usando un teclado anglosajon.
  #2 (permalink)  
Antiguo 13/04/2010, 07:04
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, 4 meses
Puntos: 2658
Respuesta: Problema con la isercion

Si `pid`es un campo definido como UNIQUE o es parte de la PK, no podrás ingresarlo nunca al decrementarlo porque estarías volviendo a una PK ya ingresada o a un valor de un campo UNIQUE que ya existe. En cualquiera de los dos casos vale la restricción dada en el diseño de la tabla.
Si el campo `pid`es una FK, el incrementarlo fuera del rango de la PK de origen, tampoco te permitirá ingresarlo.

Para cualquier posibilidad deberías postear y/o analizar la estructura de la tabla y sus constraint pare verificar que no estés intentando cosas que las violen.

Cita:
Perdon por las tildes, pero estoy usando un teclado anglosajon.
Bueno, ¿tampoco conoces los códigos ASCII (alt+160, Alt+161, etc)?
__________________
¿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: Ninguno
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 16:04.