Cannot add or update a child row: a foreign key constraint fails (`omohr4`.`empleado`, CONSTRAINT `rut_a_fk` FOREIGN KEY (`rut_a_fk`) REFERENCES `administrador` (`rut_a`) ON DELETE NO ACTION ON UPDATE NO ACTION)
El HTML/PHP:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Registro Empleados</title> </head> <body> <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post"> <p><b>Formulario de registro de Empleado</b> <br><br> Primer nombre: <input type="text" name="nombre"><br> Primer apellido: <input type="text" name="apellido"><br> RUT: <input type="text" name="rut_e"><br> Calle y número: <input type="text" name="calle_nro"><br> Comuna: <input type="text" name="comuna"><br> Región: <input type="text" name="region"><br> Fecha contrato: <input type="text" name="fecha_contrato"><br> Tipo Empleado: <select name="tipo_empleado"><option>a</option><option>v</option><option>j</option> </select><br> Rut jefe: <input type="text" name="rut_a_fk"> </p> <p> <input type="submit" value="Registrar" /> <br> </p> </form> <?php if(isset($_POST['nombre'])){ $host="localhost"; $username="root"; $password=""; $conexion=mysql_connect($host,$username,$password) or die(mysql_error()); $db = @mysql_select_db("omohr4", $conexion) or die(mysql_error()); $nombre=$_POST["nombre"]; $apellido=$_POST["apellido"]; $rut_e=$_POST["rut_e"]; $calle_nro=$_POST["calle_nro"]; $comuna=$_POST["comuna"]; $region=$_POST["region"]; $fecha_contrato=$_POST["fecha_contrato"]; $tipo_empleado=$_POST["tipo_empleado"]; $rut_a_fk=$_POST["rut_a_fk"]; if ($rut_a_fk='') {mysql_query("INSERT INTO empleado (`rut_e`, `nombre`, `apellido`, `calle_nro`, `comuna`, `region`,`fecha_contrato`,`tipo_empleado`,`rut_a_fk`) VALUES ('$rut_e','$nombre','$apellido','$calle_nro','$comuna','$region','$fecha_contrato','$tipo_empleado', NULL)") or die(mysql_error()); } mysql_query("INSERT INTO empleado (`rut_e`, `nombre`, `apellido`, `calle_nro`, `comuna`, `region`,`fecha_contrato`,`tipo_empleado`,`rut_a_fk`) VALUES ('$rut_e','$nombre','$apellido','$calle_nro','$comuna','$region','$fecha_contrato','$tipo_empleado','$rut_a_fk')") or die(mysql_error()); if ($tipo_empleado = a) { $titulo="DEFECTO"; mysql_query("INSERT INTO administrador (`rut_a`, `titulo`) VALUES ('$rut_e,'$titulo')") or die(mysql_error()); } if ($tipo_empleado=v) { mysql_query("INSERT INTO vendedor (rut_v) VALUES ('rut_e')") or die(mysql_error()); } if ($tipo_empleado=j) { $cargo_mantencion="DEFECTO"; mysql_query("INSERT INTO junior (rut_j, cargo_mantencion) VALUES ('$rut_e, '$cargo_mantencion')") or die(mysql_error()); } } ?> </body> </html>
Código:
Ya tenía un tema con este error, pero empezé enviando otra pregunta y antes de desviar el tema del topic, preferí empezar otro.-- -----------------------------------------------------
-- Table `omohr4`.`administrador`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `omohr4`.`administrador` (
`rut_a` INT(8) NOT NULL ,
`titulo` VARCHAR(35) NOT NULL ,
PRIMARY KEY (`rut_a`) ,
INDEX `rut_a` (`rut_a` ASC) ,
CONSTRAINT `rut_a`
FOREIGN KEY (`rut_a` )
REFERENCES `omohr4`.`empleado` (`rut_e` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `omohr4`.`empleado`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `omohr4`.`empleado`
(
`rut_e` INT(8) NOT NULL ,
`nombre` VARCHAR(35) NOT NULL ,
`apellido` VARCHAR(35) NOT NULL ,
`calle_nro` VARCHAR(35) NOT NULL ,
`comuna` VARCHAR(35) NOT NULL ,
`region` VARCHAR(35) NOT NULL ,
`fecha_contrato` DATE NOT NULL ,
`tipo_empleado` ENUM('a','v','j') NOT NULL ,
`rut_a_fk` INT(8) NULL ,
PRIMARY KEY (`rut_e`) ,
INDEX `rut_a_fk` (`rut_a_fk` ASC) ,
CONSTRAINT `rut_a_fk`
FOREIGN KEY (`rut_a_fk` )
REFERENCES `omohr4`.`administrador` (`rut_a` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `omohr4`.`vendedor`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `omohr4`.`vendedor` (
`rut_v` INT(8) NOT NULL ,
PRIMARY KEY (`rut_v`) ,
INDEX `rut_v` (`rut_v` ASC) ,
CONSTRAINT `rut_v`
FOREIGN KEY (`rut_v` )
REFERENCES `omohr4`.`empleado` (`rut_e` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `omohr4`.`entrega`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `omohr4`.`entrega` (
`id_entrega` INT NOT NULL AUTO_INCREMENT ,
`rut_c_fk2` INT(9) NOT NULL ,
`rut_v_fk` INT(8) NOT NULL ,
`fecha` DATE NOT NULL ,
PRIMARY KEY (`id_entrega`) ,
INDEX `rut_c_fk2` (`rut_c_fk2` ASC) ,
CONSTRAINT `rut_c_fk2`
FOREIGN KEY (`rut_c_fk2` )
REFERENCES `omohr4`.`cliente` (`rut_c` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `rut_v_fk`
FOREIGN KEY (`rut_v_fk` )
REFERENCES `omohr4`.`vendedor` (`rut_v` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `omohr4`.`junior`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `omohr4`.`junior` (
`rut_j` INT(8) NOT NULL ,
`cargo_mantencion` VARCHAR(35) NOT NULL ,
PRIMARY KEY (`rut_j`) ,
INDEX `rut_j` (`rut_j` ASC) ,
CONSTRAINT `rut_j`
FOREIGN KEY (`rut_j` )
REFERENCES `omohr4`.`empleado` (`rut_e` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Saludos.


