Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Bases de Datos => Mensaje iniciado por: Geg1 en 15 Marzo 2018, 20:53 PM

Título: AYUDA! Problema (Error 1452)
Publicado por: Geg1 en 15 Marzo 2018, 20:53 PM
Hola a todos, tengo el siguiente problema al rellenar un formulario PHP que se conecta a una BD MYSQL:

El formulario:

(https://i.imgur.com/ONAB1bc.png)

el error que da:

(https://i.imgur.com/rdFp02B.png)

Como relacione las tablas:

(https://i.imgur.com/O5qvJ9S.png)

tabla "Productos":

(https://i.imgur.com/HIo3x2h.png)

tabla "Pedidos":

(https://i.imgur.com/QLdRKGT.png)


Por favor, he estado investigando y no encontre la solucion! Desde ya Gracias...
Título: Re: AYUDA! Problema (Error 1452)
Publicado por: srWhiteSkull en 15 Marzo 2018, 21:31 PM
Mira el valor de producto_id, depura mete un echo $_POST["producto_id"] o lo que sea para ver que valor le estás pasando. El error te indica que hay un problema con la clave extranjera producto_id de Pedidos. Asegúrate si estás creando o modificando un registro en Pedidos que la clave producto_id tiene o se le pasa un valor numérico entero (y existe como id en la tabla Producto)
Título: Re: AYUDA! Problema (Error 1452)
Publicado por: Geg1 en 15 Marzo 2018, 21:39 PM
Cita de: srWhiteSkull en 15 Marzo 2018, 21:31 PM
Mira el valor de producto_id, depura mete un echo $_POST["producto_id"] o lo que sea para ver que valor le estás pasando. El error te indica que hay un problema con la clave extranjera producto_id de Pedidos. Asegúrate si estás creando o modificando un registro en Pedidos que la clave producto_id tiene o se le pasa un valor numérico entero (y existe como id en la tabla Producto)


Disculpa, soy muy nuevo en esto de PHP y MYSQL. Lo que hice fue insertar por defectos dos registros en la tabla "productos" los cuales mediante la relacion producto_id --> id_producto los conecto con la tabla pedidos..

Cual seria el error ahi? no logro captarlo
Título: Re: AYUDA! Problema (Error 1452)
Publicado por: srWhiteSkull en 15 Marzo 2018, 22:01 PM
Haz la misma operación desde la consola de MySQL con pura sentencias SQL. Pienso que el problema no lo estás teniendo en PHP sino en las propias sentencias o en los valores que defines para las claves.
Título: Re: AYUDA! Problema (Error 1452)
Publicado por: Geg1 en 15 Marzo 2018, 22:39 PM
Cita de: srWhiteSkull en 15 Marzo 2018, 22:01 PM
Haz la misma operación desde la consola de MySQL con pura sentencias SQL. Pienso que el problema no lo estás teniendo en PHP sino en las propias sentencias o en los valores que defines para las claves.


en Mysql puedo insentar un registro de pedidos sin problema, ese error solo se da en el menu de php :(
Título: Re: AYUDA! Problema (Error 1452)
Publicado por: srWhiteSkull en 15 Marzo 2018, 23:31 PM
Bueno, pues ahora comprueba la sentencia SQL que le estás pasando a la función(mysqli_query o lo que sea). En vez de pasar la sentencia a la función haz un echo $sentencia o como hayas llamado a la variable de la sentencia para ver que le estás enviando al servidor MySQL y luego copiala al portapapeles y pegala en la consola de MySQL. Todo este proceso se llama depurar.
Título: Re: AYUDA! Problema (Error 1452)
Publicado por: Geg1 en 16 Marzo 2018, 14:10 PM
Cita de: srWhiteSkull en 15 Marzo 2018, 23:31 PM
Bueno, pues ahora comprueba la sentencia SQL que le estás pasando a la función(mysqli_query o lo que sea). En vez de pasar la sentencia a la función haz un echo $sentencia o como hayas llamado a la variable de la sentencia para ver que le estás enviando al servidor MySQL y luego copiala al portapapeles y pegala en la consola de MySQL. Todo este proceso se llama depurar.

hice esto:

(https://i.imgur.com/HBcJ5hK.png)

y ne sale lo siguiente:

CitarLa sentencia que me da problemas es : INSERT INTO pedidos (id_pedido, cliente_id, producto_id, fecha) VALUES (12, 0, 0, '2018-03-27')

Veo que en el apartado Clientes y Producto, no me toma los valores que elijo y los deja en 0...

y lo que yo deduzco es que ese error ocurre porque al asignarle un 0 al cliente_id como no existe esa variable en id_cliente que es la llave primaria ocurre esto, puede ser?
Título: Re: AYUDA! Problema (Error 1452)
Publicado por: Geg1 en 16 Marzo 2018, 14:53 PM
Ya lo resolvi!! El error estaba aqui:


<select name="producto_id" size="1">
        <option value="" >Seleccionar</option>
        <?php
do {  
?>

       [b] <option value="<?php echo $row_Productos['id_producto']?>"><?php echo $row_Productos['producto']?></option>
       [/b]



en donde esta ['producto'] estaba id_producto cuando uno es entero y el otro texto, entonces nunca iba a encontrar un entero en un texto jaja... se que no deberia usar el dreamweaver pero me gusta experimentar y creo que de estas cosas aprendo.. gracias por tu ayuda srWhiteSkull, gracias a ese comentario que me hiciste hacer en el codigo me abriste la cabeza y entendi el problema!!
Título: Re: AYUDA! Problema (Error 1452)
Publicado por: srWhiteSkull en 16 Marzo 2018, 19:37 PM
 ;-)