TransWikia.com

Preguntas Etiquetas Usuarios Sin responder ¿COMO PUEDO INSERTAR DATOS EN TABLAS FORANEAS? SOLO ME REGISTRA UNA

Stack Overflow en español Asked by PIERO SALAZAR on February 9, 2021

//para empezar tengo 3 tablas
//tabla usuario, area y distrito en las cuales la tabla usuario jala las pk de area y distrito en su tabla, y en mi codigo he llegado a insertar en un formulario todo, y en la tabla usuario me sale todo normal osea las fk normales pero solo en una que es area pero la otra fk de distrito no me sale, antes que nada las dos fk son autoincrement, he estado investigando y para que me jale una usea el ".$mysqli->insert_id."


<?php
    require_once("../Trabajo/conexion.php");

    if(
        isset($_POST["DNI"]) &&
        isset($_POST["NOMBREUSU"]) &&
        isset($_POST["APEUSU"]) &&
        isset($_POST["APEMATUSU"]) &&
        isset($_POST["DIREUSU"]) &&
        isset($_POST["NOMDIST"]) &&
        isset($_POST["DESUSU"])
    ){
        $mysqli-> query("INSERT INTO
                distrito(
                    ID_DISTRI,
                    NOM_DISTRI
                )
                VALUES(
                    null,
                    '".$_POST["NOMDIST"]."'
                )
                ");
      
          $mysqli-> query("INSERT INTO
          area(
              ID_AREA,
              DES_AREA
          )
          VALUES(
              null,
              '".$_POST["DESUSU"]."'
          )
          ");
    $mysqli-> query("INSERT INTO 
             usuario
    VALUES(
                '".$_POST["DNI"]."',
                '".$_POST["NOMBREUSU"]."',
                '".$_POST["APEUSU"]."',
                '".$_POST["APEMATUSU"]."',
                null,
                '".$_POST["DIREUSU"]."',
                null,
                null,
                null,
                null,
                ".$mysqli->insert_id."
           
               

                 )
                 ");
               
    };

?>

One Answer

El insert_id solo te devuelve el último autoincremento insertado, no todos los realizados; por tanto necesitas crear (te sugiero) 2 variables; una para cada id que se genera; aquí las nombrare $idDistrito e $idArea; tal que, hagas lo siguiente:

$mysqli->query("TU INSERT A DISTRITO");
$idDistrito=$mysqli->insert_id;
$mysqli->query("TU INSERT A AREA");
$idArea=$mysqli->insert_id;

ya con estas 2 nuevas variables las colocas en la parte de tu INSERT a usuario donde le corresponda a c/u.

Answered by RobertoLeOr on February 9, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP