Ver Mensaje Individual
  #3 (permalink)  
Antiguo 31/05/2016, 20:52
Avatar de eymer1235
eymer1235
 
Fecha de Ingreso: mayo-2016
Mensajes: 2
Antigüedad: 8 años
Puntos: 0
De acuerdo Respuesta: ¿Cómo obtener el id de multiples registros insertados en una consulta?

Cita:
Iniciado por manuparquegiralda Ver Mensaje
MySql te devuelve el valor del último registro insertado en el campo ID como has dicho, tan solo tienes que contar cuantos registros has metido y restárselos al último ID.

Por ejemplo si ingresas tres nuevos registros y el último ID es 6, es de entender que los dos anteriores son 4 y 5, creo que no hay más complicación.
Amigo muchas gracias con lo que me dijistes lo pude hacer, me quedó así:
Código PHP:
......................................Antes de esto hay más código......................................
$query3 "INSERT INTO valores VALUES ";
            foreach (
$valores_dep as $key => $value){ 
                 
//echo "{$valor[$key]}{$tipo_valores_dep[$key]}{$unidad[$key]}{$referencia[$key]}\n";

         
$query3 .= "(null,'{$tipo_valores_dep[$key]}','{$valor[$key]}','{$unidad[$key]}','{$referencia[$key]}'),";
        
                     

            };
            
//REMUEVO ULTIMA COMA
            
$query3 substr($query30, -1); 
            
//echo $query3;  
            
$sql3 mysql_query($query3) or die(mysql_error());
            
$ul mysql_insert_id();
            
$gm mysql_affected_rows();
            echo 
"Filas insertadas $gm";
            echo 
"Ultimo id $ul";

            
$final $ul+$gm-1;

        }
/*FIN INSERT VALORES CUANDO ES COMPUESTO*/

    
/* FIN VALIDACION DESPLIEGUE */

    /* INSERTO DATOS DE EXAMEN EN TABLA EXAMEN */
    
$query4 "INSERT INTO examen VALUES (null, '$tipo_examen','$codigo_examen','$nombre_examen','$muestra','$despliegue','$metodo','$precio')";
    
//echo "$query2";
    
$sql4 mysql_query($query4) or die(mysql_error());
    
$ultimo_examen mysql_insert_id();
    
//echo "Ultimo examen $ultimo_examen";

    
if ($sql4) {
            echo 
"<script>
                alert(\"Exámen registrado con exito.\");
            </script>"
;
    } else {
            echo 
"<script>
                alert(\"El exámen no pudo ser registrado con exito con exito.\");
            </script>"
;
    }

    for (
$i=$ul$i <= $final$i++) { 
                
//echo "$i <br>";
                
$query5 "INSERT INTO examen_has_valores VALUES ('$ultimo_examen','$i')";
                
$sql5 mysql_query($query5) or die (mysql_error());
            } 
Por supuesto falta terminar de validar el código y mejorarlo, ya que cuando se fuera a registrar un examen con un valor ya existente, tengo que hacer que tome el id de ese valor e insertarlo en la tabla relacionada, pero con esto me has sacado de un problema. Muchas gracias.
PD: el mysql_insert_id() no me arroja el último sino el primer id de esos registros, por ejemplo si los registros eran 6, 7, 8 y 9, me arroja es 6.