[ Foro de SQL (y MySQL) ]

llave foránea null

13-Dec-2019 01:45
Invitado (zonacarlosgil)
0 Respuestas

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.)