Cita:
Iniciado por manuparquegiralda
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($query3, 0, -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.