Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] mysqli_insert_id en un campo de texto

Estas en el tema de mysqli_insert_id en un campo de texto en el foro de PHP en Foros del Web. Hola a todos Espero me puedan ayudar a solucinar mi problema hago el insert al DB todo bien y aprendiendo de a poco ah usar ...

  #1 (permalink)  
Antiguo 21/11/2015, 22:44
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
mysqli_insert_id en un campo de texto

Hola a todos
Espero me puedan ayudar a solucinar mi problema
hago el insert al DB todo bien y aprendiendo de a poco
ah usar mysqli_ por recomendacion de muchos

Traigo el ID siguiente de esta forma $last_id = mysqli_insert_id($conexion);
y con un, echo " " . $last_id; muestro el ID que ingreso.

con mi casi nulo conocimiento y agonia intento resolver el problema
haciendo el insert del ID traido de la tabla a un campo de texto
ahi esta el problema que no se como hacer eso pero traer el ID
si me resulto.

espero me haya podido explicar, gracias.


Datos de ejemplo funcionando
Código PHP:
Ver original
  1. <?php
  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.     $CodigoUnico = $_POST['CodigoUnico'];
  13.     $SQL = "INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','$CodigoUnico')";
  14.  
  15.     if (mysqli_query($conexion,$SQL)) {
  16.     echo "Listo";
  17.     // Print auto-generated id
  18.     //echo " " . mysqli_insert_id($conexion);
  19.     $last_id = mysqli_insert_id($conexion);
  20.     echo "ID es: " . $last_id;
  21.    
  22.     } else {
  23.     echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  24. }
  25. ?>
  26.  
  27. <form action="tes.php" method="post">
  28. <input name="Nombre" type="text">
  29. <input name="Apellido" type="text">
  30. <input name="Anio" type="text">
  31. <input name="CodigoUnico" type="text" value="COD<? echo $last_id;?>">
  32. <input name="enviar" type="submit">
  33. </form>

Última edición por pilucho; 21/11/2015 a las 22:45 Razón: me falto /
  #2 (permalink)  
Antiguo 22/11/2015, 00:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mysqli_insert_id en un campo de texto

¿No tienes que usar <?php en lugar de sólo <? o por qué lo haces así?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/11/2015, 07:03
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por pateketrueke Ver Mensaje
¿No tienes que usar <?php en lugar de sólo <? o por qué lo haces así?
Hola Pateketrueke

Ah por que no recuerdo quien me dijo que eso era la menera que era mejor usar asi y pues pense que eso era bueno, disculpe ahora si estoy mas confundido si usar <? o <?php

Eso era la solucion por que no funcionaba? voy a probar
  #4 (permalink)  
Antiguo 22/11/2015, 07:28
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Le quite el <?php y use <? y sigue igual :(
  #5 (permalink)  
Antiguo 22/11/2015, 12:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mysqli_insert_id en un campo de texto

¿Esto sí te imprime algo o nada?

Código PHP:
Ver original
  1. $last_id = mysqli_insert_id($conexion);
  2. echo "ID es: " . $last_id;
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 22/11/2015, 12:53
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Esto sí te imprime algo o nada?

Código PHP:
Ver original
  1. $last_id = mysqli_insert_id($conexion);
  2. echo "ID es: " . $last_id;
Si imprime el ID que se inserto
  #7 (permalink)  
Antiguo 22/11/2015, 12:55
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Imprime el ID que se inserto pero no se guarda en el campo de texto, opcion seria un inser y update pero no se como empezar se que existe muchas formas de resolver esto pero no veo mas ejemplos he buscados por semanas y nada
  #8 (permalink)  
Antiguo 22/11/2015, 13:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mysqli_insert_id en un campo de texto

¿Y cómo es posible que si te imprima dicho ID antes del formulario y después ya no?

¿Podrías mostrar el código completo como lo tienes ahora?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 22/11/2015, 13:16
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Y cómo es posible que si te imprima dicho ID antes del formulario y después ya no?

¿Podrías mostrar el código completo como lo tienes ahora?

Código PHP:
Ver original
  1. <?php
  2.     include_once('conectar.php'); // Conexion
  3.     $conexion=mysqli_connect("localhost","user","password","db");
  4.  
  5.     {
  6.     echo "Error MySQL: " . mysqli_connect_error();
  7.     }
  8.  
  9.     if (isset($_GET['idp']))    $idp = $_GET['idp']; // ID de Personas
  10.     $Nombre = $_POST['Nombre'];
  11.     $Apellido = $_POST['Apellido'];
  12.     $Anio = $_POST['Anio'];
  13.     $CodigoUnico = $_POST['CodigoUnico'];
  14.     $SQL = "INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','$CodigoUnico')";
  15.  
  16.     if (mysqli_query($conexion,$SQL)) {
  17.     echo "Listo";
  18.     // Print auto-generated id
  19.     //echo " " . mysqli_insert_id($conexion);
  20.     $last_id = mysqli_insert_id($conexion);
  21.     echo "ID es: " . $last_id; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  22.    
  23.     } else {
  24.     echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  25. }
  26. ?>
  27.  
  28. <form action="tes.php" method="post">
  29. <input name="Nombre" type="text">
  30. <input name="Apellido" type="text">
  31. <input name="Anio" type="text">
  32. <input name="CodigoUnico" type="text" value="COD<? echo $last_id;?>">  <=== PERO ESTO NO GUARDA EN EL DB
  33. <input name="enviar" type="submit">
  34. </form>
  #10 (permalink)  
Antiguo 22/11/2015, 13:19
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Me muestra solo el ID ingresado donde esta el ""echo"" es decir despues del ""IF"",
y seguro cuando esta cerrado esa llavecita no arrojara al campo de texto supongo
  #11 (permalink)  
Antiguo 22/11/2015, 13:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mysqli_insert_id en un campo de texto

¿Podrías explicar el flujo de tu script así como la relación con el formulario?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 22/11/2015, 13:31
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Podrías explicar el flujo de tu script así como la relación con el formulario?
nose que flujo sera o lo que sea, pero yo pruebo el codigo si resulta queda, y me sirve para futuras cosas que quiera hacer,

Hago el insert por metodo post van todo lo que escribo a la base de datos,
pero lo que no va es el ultimo id que muestra el mysqli_insert_id la idea es traer
ese id que muestra al campo de texto que deseo guaradar.

algo asi como este ejemplo pero tampoco logre adaptarlo y trae muchas cosas que no entiendo aun.
Ejemplo similar
  #13 (permalink)  
Antiguo 22/11/2015, 13:33
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

tan dificil es ayudar?? si yo supiera todo lo que saben ustedes no pediria ayuda,
creo que estaria ayudando con ejemplos sin usar palabras teoricas que algunos quiza como yo
no han estudiado y solo han aprendido o estan aprendiendo con ejemplos como es la funcion.
  #14 (permalink)  
Antiguo 22/11/2015, 13:33
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Gracias de todas maneras.
  #15 (permalink)  
Antiguo 22/11/2015, 14:11
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 8 años, 5 meses
Puntos: 7
Respuesta: mysqli_insert_id en un campo de texto

Hola buenas tardes, proba si funciona asi

Código PHP:
Ver original
  1. <?php
  2.  include_once('conectar.php'); // Conexion
  3.  $conexion=mysqli_connect("localhost","user","password","db");
  4.  
  5. if(isset($_REQUEST['enviar'])) {
  6.     if (mysqli_connect_errno()) {
  7.        echo "Error MySQL: " . mysqli_connect_error();
  8.     }
  9.  
  10.     if (isset($_GET['idp'])) {
  11.        $idp = $_GET['idp']; // ID de Personas
  12.        $Nombre = $_POST['Nombre'];
  13.        $Apellido = $_POST['Apellido'];
  14.        $Anio = $_POST['Anio'];
  15.        $CodigoUnico = $_POST['CodigoUnico'];
  16.        $SQL = "INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','$CodigoUnico')";
  17.     }  
  18.  
  19.     if (mysqli_query($conexion,$SQL)) {
  20.        echo "Listo";
  21.        // Print auto-generated id
  22.        //echo " " . mysqli_insert_id($conexion);
  23.       $last_id = mysqli_insert_id($conexion);
  24.       echo "ID es: " . $last_id; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  25.     }
  26.     else {
  27.        echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  28.    }
  29. }
  30. ?>
  31.  <!DOCTYPE html>
  32.  <html>
  33.     <head>
  34.        <meta charset="utf-8">
  35.        <title>Test</title>
  36.     </head>
  37.     <body>
  38.       <form action="tes.php" method="post">
  39.          <input name="Nombre" type="text">
  40.          <input name="Apellido" type="text">
  41.          <input name="Anio" type="text">
  42.          <input name="CodigoUnico" type="text" value="<?php $last_id = (isset($last_id)) ? $last_id : ""; echo $last_id;?>">
  43.          <input name="enviar" type="submit">
  44.       </form>
  45.     </body>
  46.  </html>

Te explico primero entras al archivo test.php cargas el formulario, una vez cargado el formulario en el input codigoUnico te tendria que paracer dicho id.

¡Saludos!
  #16 (permalink)  
Antiguo 22/11/2015, 15:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mysqli_insert_id en un campo de texto

Yo lo único que entiendo es que tratas de resolver el problema del huevo y la gallina.

1. Necesitas recuperar el ID que se generó al insertar los datos, eso es muy claro, pero para poder obtenerlo debes hacer primero el INSERT.

2. Sin embargo, dichos datos deben venir del formulario y entonces el ID no existe en ese punto, así que por más que imprimas algo ahí no aparecerá por arte de magia.

3. Entonces, si para obtener el ID debes hacer el INSERT con los datos del formulario, ¿por qué imprimes un ID que no existe para después insertarlo en la misma consulta que lo genera?

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 22/11/2015, 15:17
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 8 años, 5 meses
Puntos: 7
Respuesta: mysqli_insert_id en un campo de texto

Coincidio con vos pateketrueke pero bueno jajaja.
  #18 (permalink)  
Antiguo 22/11/2015, 16:01
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: mysqli_insert_id en un campo de texto

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
__________________
[email protected]
HITCEL
  #19 (permalink)  
Antiguo 22/11/2015, 16:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mysqli_insert_id en un campo de texto

Código PHP:
Ver original
  1. $actu = "UPDATE Personas SET CodigoUnico = '$last_id' WHERE id = '$last_id'";

Lo cual carece de sentido, porque al final CodigoUnico es idéntico al ID mismo del registro, ¿entonces para que redundar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #20 (permalink)  
Antiguo 22/11/2015, 16:24
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por pateketrueke Ver Mensaje
Código PHP:
Ver original
  1. $actu = "UPDATE Personas SET CodigoUnico = '$last_id' WHERE id = '$last_id'";

Lo cual carece de sentido, porque al final CodigoUnico es idéntico al ID mismo del registro, ¿entonces para que redundar?
creo que lo comente aqui, pero si el lo necesita, pues que mas da, el sabrá porque la necesita de esa manera. Saludos
Cita:
(que creo es lo que necesitas sin que tenga algo de logica aclaro)
aunque si necesita un codigo unico algo diferente a la id, puede jugar con una secuancia de letras y un numero aleatoria con ellas, de esa manera ese numero si seria unico, digo para salir de lo de la id, ya que no es lo mismo mostrar:

Codigo: 1

que

Codigo: ABX-004
__________________
[email protected]
HITCEL
  #21 (permalink)  
Antiguo 22/11/2015, 16:32
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Hola gonzaherrera77

Probe con el codigo que has sugerido y hay error Warning: mysqli_query(): Empty query in En la LINEA if (mysqli_query($conexion,$SQL)) {
  #22 (permalink)  
Antiguo 22/11/2015, 16:39
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 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
  #23 (permalink)  
Antiguo 22/11/2015, 16:40
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por pateketrueke Ver Mensaje
Código PHP:
Ver original
  1. $actu = "UPDATE Personas SET CodigoUnico = '$last_id' WHERE id = '$last_id'";

Lo cual carece de sentido, porque al final CodigoUnico es idéntico al ID mismo del registro, ¿entonces para que redundar?
AL final pateketrueke siempre pide el codigo completo sin dar la solucion, aun que si reconozco que algunas veces si me ayudado mucho pero hoy en dia a cambiado muchisimos quiza le obliguen hacer asi pero bueno se respeta su desicion.
  #24 (permalink)  
Antiguo 22/11/2015, 16:48
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

hola xfxstudios acabo de Probar y no guarda nada , Igual sigue el campo vacio no guarda el ID solo me muestra la informacion como en un principio de todo y eso que estoy usando mysqli_ por que se supone que hay mas demanda en ese tipo de codigo
  #25 (permalink)  
Antiguo 22/11/2015, 16:52
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 8 años, 5 meses
Puntos: 7
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por pilucho Ver Mensaje
Hola gonzaherrera77

Probe con el codigo que has sugerido y hay error Warning: mysqli_query(): Empty query in En la LINEA if (mysqli_query($conexion,$SQL)) {
Completaste estos con tus datos de tu base de datos.

Código PHP:
Ver original
  1. $conexion=mysqli_connect("localhost","user","password","db");
  #26 (permalink)  
Antiguo 22/11/2015, 16:57
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por gonzaherrera77 Ver Mensaje
Completaste estos con tus datos de tu base de datos.

Código PHP:
Ver original
  1. $conexion=mysqli_connect("localhost","user","password","db");

Si esta todo comprobado
  #27 (permalink)  
Antiguo 22/11/2015, 16:57
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: mysqli_insert_id en un campo de texto

prueba asi:
Código PHP:
Ver original
  1. if (isset($_GET['idp']))    $idp = $_GET['idp']; // ID de Personas
  2.     $Nombre = $_POST['Nombre'];
  3.     $Apellido = $_POST['Apellido'];
  4.     $Anio = $_POST['Anio'];
  5.  
  6.     //realizo la insercion de los datos pero dejando en blanco el campo CodigoUnico para su posterior actualizacion
  7.    
  8. $inserta = $db->query("INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','')");
  9.  
  10.     //tomo la ultima id
  11.     $ultima = mysqli_insert_id($db);
  12.     //creo el codigo de esta
  13.     $dato = "COD-".$ultima;  
  14.  
  15.     //actualizo el campo correspondiente
  16.     $actu = $db->query("UPDATE Personas SET CodigoUnico = '$dato' WHERE id = '$ultima'");
  17.    
  18.    
  19.     if($actu){        
  20.    
  21.     echo "Listo";
  22.     echo "ID es: " . $ultima; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  23.    
  24.     } else {
  25.     echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  26. }
__________________
[email protected]
HITCEL
  #28 (permalink)  
Antiguo 22/11/2015, 17:01
Avatar de gonzaherrera77  
Fecha de Ingreso: noviembre-2015
Mensajes: 60
Antigüedad: 8 años, 5 meses
Puntos: 7
Respuesta: mysqli_insert_id en un campo de texto

pilucho capaz que esto te pueda ayudar. http://phpya.com.ar/temarios/descripcion.php?punto=58&cod=80&inicio=50

¡Saludos!
  #29 (permalink)  
Antiguo 22/11/2015, 17:18
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por xfxstudios Ver Mensaje
prueba asi:
Código PHP:
Ver original
  1. if (isset($_GET['idp']))    $idp = $_GET['idp']; // ID de Personas
  2.     $Nombre = $_POST['Nombre'];
  3.     $Apellido = $_POST['Apellido'];
  4.     $Anio = $_POST['Anio'];
  5.  
  6.     //realizo la insercion de los datos pero dejando en blanco el campo CodigoUnico para su posterior actualizacion
  7.    
  8. $inserta = $db->query("INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','')");
  9.  
  10.     //tomo la ultima id
  11.     $ultima = mysqli_insert_id($db);
  12.     //creo el codigo de esta
  13.     $dato = "COD-".$ultima;  
  14.  
  15.     //actualizo el campo correspondiente
  16.     $actu = $db->query("UPDATE Personas SET CodigoUnico = '$dato' WHERE id = '$ultima'");
  17.    
  18.    
  19.     if($actu){        
  20.    
  21.     echo "Listo";
  22.     echo "ID es: " . $ultima; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  23.    
  24.     } else {
  25.     echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  26. }

Este es el codigo actual y tambien probe asi y nada




Código PHP:
Ver original
  1. <?
  2.     include_once('conectar.php'); // Conexion
  3.     $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Verificar Conexión
  4.     if (!$conexion) {   die("Error de conexión: " . mysqli_connect_error());    }
  5.    
  6.    
  7.     if (isset($_POST['action']) && $_POST['action'] == 'add')
  8.     {
  9.        
  10.        
  11.     if (isset($_GET['idp']))    $idp = $_GET['idp']; // ID de Personas
  12.     $Nombre = $_POST['Nombre'];
  13.     $Apellido = $_POST['Apellido'];
  14.     $Anio = $_POST['Anio'];
  15.     $CodigoUnico = $_POST['CodigoUnico']; // AGREGE POR SI FALTA Y NADA
  16.    
  17.  
  18.     //realizo la insercion de los datos pero dejando en blanco el campo CodigoUnico para su posterior actualizacion
  19.    
  20. //$inserta = $db->query("INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','')");
  21.  
  22.  
  23. // PROBE ASI TAMBIEN CON EL CAMPO $CodigoUnico
  24. $inserta = $db->query("INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','$CodigoUnico')");
  25.  
  26.  
  27.     //tomo la ultima id
  28.     $ultima = mysqli_insert_id($db);
  29.     //creo el codigo de esta
  30.     $dato = "COD-".$ultima;  
  31.  
  32.     //actualizo el campo correspondiente
  33.     $actu = $db->query("UPDATE Personas SET CodigoUnico = '$dato' WHERE id = '$ultima'");
  34.    
  35.    
  36.     if($actu){        
  37.    
  38.     echo "Listo";
  39.     echo "ID es: " . $ultima; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  40.    
  41.     } else {
  42.     echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  43. }
  44. }
  45. ?>
  46.  
  47.  <!DOCTYPE html>
  48.  <html>
  49.     <head>
  50.        <meta charset="utf-8">
  51.        <title>Test</title>
  52.     </head>
  53.     <body>
  54.         <form action="tes.php" method="post">
  55.         <input type="hidden" name="action" value="add">
  56.         <input type='hidden' name='submit' value='submit'>
  57.  
  58.          <input name="Nombre" type="text">
  59.          <input name="Apellido" type="text">
  60.          <input name="Anio" type="text">
  61.          <input name="CodigoUnico" type="text" value="<?php $ultima = (isset($ultima)) ? $ultima : ""; echo $ultima;?>">
  62.          <input name="enviar" type="submit">
  63.       </form>
  64.     </body>
  65.  </html>
  #30 (permalink)  
Antiguo 22/11/2015, 17:24
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: mysqli_insert_id en un campo de texto

Cita:
Iniciado por gonzaherrera77 Ver Mensaje
pilucho capaz que esto te pueda ayudar. http://phpya.com.ar/temarios/descrip...d=80&inicio=50

¡Saludos!

Probe asi quite esto ¨}¨ y le puse mas abajo y dejo de salir el error pero envia vacio





Código PHP:
Ver original
  1. <?php
  2.     include_once('conectar.php'); // Conexion
  3.     $conexion = mysqli_connect($dbhost,$dbuser,$dbpass,$dbdatabase) or die ('error');   // Verificar Conexión
  4.  
  5. if(isset($_REQUEST['enviar'])) {
  6.     if (mysqli_connect_errno()) {
  7.        echo "Error MySQL: " . mysqli_connect_error();
  8.     }
  9.  
  10.     if (isset($_GET['idp'])) {
  11.        $idp = $_GET['idp']; // ID de Personas
  12.        $Nombre = $_POST['Nombre'];
  13.        $Apellido = $_POST['Apellido'];
  14.        $Anio = $_POST['Anio'];
  15.        $CodigoUnico = $_POST['CodigoUnico'];
  16.        $SQL = "INSERT INTO Personas (Nombre,Apellido,Anio,CodigoUnico) VALUES ('$Nombre','$Apellido','$Anio','$CodigoUnico')";
  17.      
  18.  
  19.     if (mysqli_query($conexion,$SQL)) {
  20.        echo "Listo";
  21.        // Print auto-generated id
  22.        //echo " " . mysqli_insert_id($conexion);
  23.       $last_id = mysqli_insert_id($conexion);
  24.       echo "ID es: " . $last_id; // AQUI SOLO ME MUESTRA EL ID INGRESADO AL DB
  25.     }
  26.     else {
  27.        echo "Error: " . $SQL . "<br>" . mysqli_error($conexion);
  28.    }
  29. }
  30.  
  31. }
  32. ?>
  33.  <!DOCTYPE html>
  34.  <html>
  35.     <head>
  36.        <meta charset="utf-8">
  37.        <title>Test</title>
  38.     </head>
  39.     <body>
  40.       <form action="tes.php" method="post">
  41.          <input name="Nombre" type="text">
  42.          <input name="Apellido" type="text">
  43.          <input name="Anio" type="text">
  44.          <input name="CodigoUnico" type="text" value="<?php $last_id = (isset($last_id)) ? $last_id : ""; echo $last_id;?>">
  45.          <input name="enviar" type="submit">
  46.       </form>
  47.     </body>
  48.  </html>

Etiquetas: mysql+php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:49.