A ver si me podéis ayudar con lo siguiente: Quiero insertar el id de una tabla a otra, con un INSERT INTO y una subconsulta SELECT, la cual hace referencia a esa id deseado mediante una llava foránea. Mi consulta SQL captura tal id, lo graba en su tabla correspondiente pero no se refleja en la tabla que hace referencia a ese id. Sin embargo, cuando hago otra consulta SQL y hago referencia a ese id que antes mostraba NULL, entonces se muestra en la tabla que tiene la llave foránea. Con el código que os dejo a ver si me puedo explicar mejor
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$nombre_audio=($_POST['nombre_audio']);
$cargarAudio = $_FILES['audio']['tmp_name'];
$audio = fopen($cargarAudio,'rb');
$nombre_expositor = ($_POST['nombre_expositor']);
$nombre_serie = ($_POST['nombre_serie']);
// $fecha_bd=date("Y-m-d h:i:sa");
if (empty($nombre_audio) && empty($audio) && empty($nombre_expositor)) {
unset($_POST);
echo "<h3>Todos los campos son obligatorios</h3>";
}else{
$sql2 = "INSERT IGNORE INTO expositor(nombre_expositor) VALUES ('$nombre_expositor')";
$sql3 = "INSERT IGNORE INTO serie(nombre_serie) VALUES ('$nombre_serie')";
$sql = "INSERT INTO audio (nombre_audio, audio, fk_expositor, fk_serie)
VALUES ('$nombre_audio', '$audio', (SELECT id_expositor FROM expositor WHERE nombre_expositor = '$nombre_expositor'), (SELECT id_serie FROM serie WHERE nombre_serie = '$nombre_serie'))";
if ($conexion->query($sql) === TRUE &&
$conexion->query($sql2) === TRUE
&& $conexion->query($sql3) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conexion->error;
echo "<h3>Todos los campo son obligatorios</h3>";
}
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)