Foros del Web » Programando para Internet » PHP »

Error al insertar datos ¿?

Estas en el tema de Error al insertar datos ¿? en el foro de PHP en Foros del Web. Hola: Mi problema es que al momento de insertar datos desde la página web me manda este error y según yo el acomodo para la ...
  #1 (permalink)  
Antiguo 11/09/2007, 11:25
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Error al insertar datos ¿?

Hola:

Mi problema es que al momento de insertar datos desde la página web me manda este error y según yo el acomodo para la inserción de datos está bien porque primero inserto a la tabla padre y luego a la hijo.

Código PHP:
<?php
       $result
=mysql_query("INSERT INTO producto(tipo_producto,nombre_prod,image) VALUES('{$_POST['tipo']}','{$_POST['nombre']}', '{$data}')",$link);
       
$resmax=mysql_query("SELECT max(id_producto)as resmax from desc_prod");
       
$rr=mysql_result($resmax,0,'resmax')+1;
       
$result2=mysql_query("INSERT INTO desc_prod(id_producto,descripcion,precio_fijo,precio_min,precio_oferta,caract_tecnolog,fecha_ingre,tiempo_ofer) VALUES ($rr,'{$_POST['descrip']}',{$_POST['precio_fijo']},{$_POST['precio_min']},{$_POST['precio_oferta']},'{$_POST['caract']}','{$_post['fecha_reg']}','{$_POST['tiempo_ofer']}')",$link);
?>
Cual será el problema ?
  #2 (permalink)  
Antiguo 11/09/2007, 11:33
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: Error al insertar datos ¿?

Hola Nantcy cual es el error que te da?, dime que tipo de dato es el campo id_producto de la tabla productos? y fijate si esta como autoincrementable.

Saludos.
  #3 (permalink)  
Antiguo 11/09/2007, 11:36
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: Error al insertar datos ¿?

Procura comprobar el resultado de cada llamada a la función mysql_query si no quieres obtener resultados inesperados. Si el resultado es false, detén el curso normal de tu aplicación.
Por otro lado, puedes utilizar la función mysql_error para saber más acerca de los errores del MySQL.

Un saludo
  #4 (permalink)  
Antiguo 11/09/2007, 11:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: Error al insertar datos ¿?

Hola:

El error es el sigueinte:

1452: Cannot add or update a child row: a foreign key constraint fails (`tienda/desc_prod`, CONSTRAINT `desc_prod_ibfk_1` FOREIGN KEY (`id_producto`) REFERENCES `producto` (`id_producto`))


El campo id_producto es un int(11) y si es auto_increment

Para ver los errores utilizo esto:
$Error = mysql_error($link); echo mysql_errno().": ".$Error."<BR>";
if(!empty($Error))
{
echo "<div align='center'>";
echo "<font face='Arial' color='blue' size=2>Se ha producido un Error al momento de Insertar los Datos.</font><br> $Error";
echo "</div>";
}
else
{
echo "<div align='center'>";
echo "<font face='Arial' color='blue' size=2>Se han insertado los Datos Correctamente</font>";
echo "<img src='../www/image/$nuevoNombre' $data[3]> <br><br><font face='Arial' color='blue' sie=2> imagen $nuevoNombre subida con éxito </font>";
echo "</div>";
}
  #5 (permalink)  
Antiguo 11/09/2007, 11:49
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: Error al insertar datos ¿?

Entonces Nantcy ya no es necesario que pongas esto:

Código PHP:
$resmax=mysql_query("SELECT max(id_producto)as resmax from desc_prod"); 
 
$rr=mysql_result($resmax,0,'resmax')+1
y tu segundo inser quedaria asi:

Código PHP:
$result2=mysql_query("INSERT INTO desc_prod(descripcion,precio_fijo,precio_min,precio_oferta,caract_tecnolog,fecha_ingre,tiempo_ofer) VALUES ('{$_POST['descrip']}',{$_POST['precio_fijo']},{$_POST['precio_min']},{$_POST['precio_oferta']},'{$_POST['caract']}','{$_post['fecha_reg']}','{$_POST['tiempo_ofer']}')",$link); 
?> 

como el campo id_producto es autoincrementable ya no es necesario ingresarlo.

Saludos
  #6 (permalink)  
Antiguo 11/09/2007, 11:55
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: Error al insertar datos ¿?

Pero una cosa que no entiendo es por que tienes una tabla produtos y otra desc_prodcuto, que es lo que intentas hacer teniendo esas dos tablas???
  #7 (permalink)  
Antiguo 11/09/2007, 12:11
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: Error al insertar datos ¿?

El id_proucto es auto_increment en la tabla producto pero no en la desc_prod es por eso que utilizo $resmax=mysql_query("SELECT max(id_producto)as resmax from desc_prod");
$rr=mysql_result($resmax,0,'resmax')+1; para que me incremente en 1 sinohabría un problema al momento de hacer alguna consulta y alo que e leido solo se puede tener un auto_increment en una tabla y ya tengo uno.


Sobre las tablas, en una solo quise poner el nombre del producto, su id, la imagen y la categoria a la q pertenece, aunq si podría ir todos esos datos en una sola, asi tengo esas dos tablas, si hay alguna sugerencia bienvenida.
  #8 (permalink)  
Antiguo 11/09/2007, 12:15
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: Error al insertar datos ¿?

Hola Nantcy agregame al msn que esta en mi perfil y asi poder ayudarte mejor.

Saludos...
  #9 (permalink)  
Antiguo 11/09/2007, 12:50
 
Fecha de Ingreso: mayo-2005
Mensajes: 74
Antigüedad: 19 años
Puntos: 2
Re: Error al insertar datos ¿?

Si solo se puede tener un auto_increment en la tabla de productos, pero el que te falta sería en la otra tabla de todos modos, no creo que sea ese el problema...te da error de que no puedes introducir un registro que no tenga uno relaccionado en la tabla productos, y es normal, porque sumas 1 a ese id?

¿Porque no usas la funcion mysql_insert_id(); que te daría el id del ultimo producto introducido?, quedaría así:

<?php
$result=mysql_query("INSERT INTO producto(tipo_producto,nombre_prod,image) VALUES('{$_POST['tipo']}','{$_POST['nombre']}', '{$data}')",$link);
$ultimoID = mysql_insert_id($link);

$result2=mysql_query("INSERT INTO desc_prod(id_producto,descripcion,precio_fijo,prec io_min,precio_oferta,caract_tecnolog,fecha_ingre,t iempo_ofer) VALUES ($ultimoID,'{$_POST['descrip']}',{$_POST['precio_fijo']},{$_POST['precio_min']},{$_POST['precio_oferta']},'{$_POST['caract']}','{$_post['fecha_reg']}','{$_POST['tiempo_ofer']}')",$link);

?>


Voila!
  #10 (permalink)  
Antiguo 20/09/2007, 18:33
 
Fecha de Ingreso: marzo-2007
Mensajes: 163
Antigüedad: 17 años, 1 mes
Puntos: 0
Pregunta Re: Error al insertar datos ¿?

OK voy a agregarte y a intentarlo con el mysql_insert_id().
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 23:59.