Hola a todos!!!.
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!!!!