Ver Mensaje Individual
  #22 (permalink)  
Antiguo 22/11/2015, 16:39
pilucho
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por xfxstudios Ver Mensaje
si lo que quieres es que en el campo CodigoUnico este la id del registro que estas insertando, debes realizar un update a esa linea inmediatamente realizas la insercion de esta con, algo asi:

Código PHP:
Ver original
  1. include_once('conectar.php'); // Conexion
  2.     $conexion=mysqli_connect("localhost","user","password","db");
  3.  
  4.     {
  5.     echo "Error MySQL: " . mysqli_connect_error();
  6.     }
  7.  
  8.     if (isset($_GET['idp']))    $idp = $_GET['idp']; // ID de Personas
  9.     $Nombre = $_POST['Nombre'];
  10.     $Apellido = $_POST['Apellido'];
  11.     $Anio = $_POST['Anio'];
  12.  
  13.     //realizo la insercion de los datos pero dejando en blanco el campo CodigoUnico para su posterior actualizacion
  14.     $SQL = "INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','')";
  15.  
  16.     if (mysqli_query($conexion,$SQL)) {
  17.    
  18.     //aqui obtengo la ulñtima id insertada
  19.     $last_id = mysqli_insert_id($conexion);
  20.    
  21.     //actualizo el campo correspondiente
  22.     $actu = "UPDATE Personas SET CodigoUnico = '$last_id' WHERE id = '$last_id'";
  23.            
  24.     echo "Listo";
  25.     echo "ID es: " . $last_id; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  26.    
  27.     } else {
  28.     echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  29. }

Código HTML:
Ver original
  1. <form action="tes.php" method="post">
  2. <input name="Nombre" type="text">
  3. <input name="Apellido" type="text">
  4. <input name="Anio" type="text">
  5. <!--<input name="CodigoUnico" type="text" value="COD<? echo $last_id;?>">-->  <=== PERO ESTO NO GUARDA EN EL DB
  6. <input name="enviar" type="submit">
  7. </form>

alli como puedes ver elimino del formulario el envio o intento de envio de un codigo no existente y realizo el update a la linea recien insertada agregandole como codigo el mismo id de ella (que creo es lo que necesitas sin que tenga algo de logica aclaro), pero deberia de ser asi, ya que como te indicaron, no te va a aparecer el ultimo id insertado porque no has realizado la query y aclaro, si quieres ver el ultimo id o anterior a la nueva insercion, deve realizar una nueva query que llame a ese ultimo registro, pero bueno tu sabras eso, intento con lo que te coloque alli

Hola xfxstudios

Voy a probar como me va con esta solucion no comprendo por que se dice redundancia...

Se supone que es un campo de texto que se debe llenar con el ID que se Genera automaticamente
la cual Seria para mi asi... ejemplo COD-1 Donde el numero uno es el ID que se incrementa
y la palabra COD- es lo que usare para ese campo

y si he visto por ahi buscando informacion que hay una manera de hacer eso con un UPDaTe
pero no sabia como, aun que por ahi en los manuales que no entiendo nada,
tambien hay solo con un insert, haciendo muchas pruebas logre a duras penas hacer que muestre el ID
con lo que muestra el codigo que puse, pero no consi aun guardar ese ID a un campo de texto

Pero ahora voy a probar como me va