AYUDA! Problema (Error 1452)

Iniciado por Geg1, 15 Marzo 2018, 20:53 PM

0 Miembros y 1 Visitante están viendo este tema.

Geg1

Hola a todos, tengo el siguiente problema al rellenar un formulario PHP que se conecta a una BD MYSQL:

El formulario:



el error que da:



Como relacione las tablas:



tabla "Productos":



tabla "Pedidos":




Por favor, he estado investigando y no encontre la solucion! Desde ya Gracias...

srWhiteSkull

#1
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)

Geg1

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

srWhiteSkull

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.

Geg1

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 :(

srWhiteSkull

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.

Geg1

#6
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:



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?

Geg1

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!!