Bueno posteo aqui mi pregunta es sobre 3 consultas INSERT SQL en un formulario PHP.
MI PROBLEMA es que la inserción de datos en las tablas, se hace 2 veces es decir, se repite 2 veces por cada cliente en la tabla realizados.
Espero me puedan ayudar, dejo aquí los datos de creación de tablas y la consulta php que hice.
Tengo 3 tablas en una bd llamada "prueba"
Las tablas son:
Código SQL:
Ver original
-- CREACION TABLAS bd prueba /* pongo fecha varchar10 para permitir almacenar la forma de dd/mm/yy*/ CREATE TABLE clientes ( codcliente INT AUTO_INCREMENT, fecha_alta VARCHAR(10), nombre VARCHAR(50), PRIMARY KEY (codcliente) ); CREATE TABLE trabajos ( codtrabajo INT AUTO_INCREMENT, tipo_trabajo VARCHAR(20), imagen mediumblob, tipo_imagen VARCHAR(30), PRIMARY KEY (codtrabajo) ); CREATE TABLE realizados ( codrealizado INT AUTO_INCREMENT, codcliente INT, codtrabajo INT, descripcion VARCHAR(200), precio DECIMAL(6,2), PRIMARY KEY (codrealizado), FOREIGN KEY (codcliente) REFERENCES clientes(codcliente), FOREIGN KEY (codtrabajo) REFERENCES trabajos(codtrabajo) );
Bien pues como ven hay 2 campos FOREIGN KEY en la tabla "realizados"
los cuales son: codcliente proviene de tabla clientes y codtrabajo proviene tabla trabajos.
Bueno hasta hay bien, todo creado, pero tengo un formulario el cual quiero insertar datos del cliente, y como saben el idcliente debería rellenarse en la otra tabla,
ejm: si inserto cliente1 este tomará el IDCLIENTE = 1.
Luego ese IDCLIENTE pasaría también a guardarse en la tabla "realizados" para tener relacion entre ellos.
tengo el formulario y cuando le doy el boton envio llama este fichero.
---------------ficheroalta.php
Código PHP:
Ver original
<?php $nombre = $_SESSION['nombre'] ; $f_alta = $_SESSION['f_alta'] ; //CONECTO A LA BD. include ("abre_conexion.php"); //$conecta=mysql_connect('localhost', 'root', ''); //mysql_select_db ('control1',$conecta); //INSERTO LOS DATOS EN LA 1 tabla clientes $operacion="insert into clientes values('','$f_alta','$nombre')"; //COMPRUEBO SI HAY ERROR. //Obteniendo último id insertado (qué es el de USUARIOS, ya que es el que necesitaremos para ligarlo a las otras tablas. //INSERTO DATOS EN LA 2 tabla trabajos $operacion="insert into trabajos values('','','','' ) "; //Obteniendo último id insertado (qué es el de TRABAJO, ya que es el que necesitaremos para ligarlo a las otras tablas. //INSERTO DATOS EN LA 3 tabla realizados $operacion="insert into realizados values('','$codcliente','$codtrabajo','','','')"; /**/ print "<br>" . "La consulta se ha realizado correctamente"; } else { print " <br>" . "La consulta no se ha realizado correctamente."; } ?>
Bien los datos se insertan .
PERO se insertan 2 veces en la "tabla realizados"
¿Esto porque, como puedo solucionarlo. porfavor es urgente. ?
Muchas gracias a todos los que me puedan ayudar, no he podido solucionarlo y no se a que se debe que se repita la inserción de datos en esa tabla.
Un saludo!!!!
