Gracias por sus respuestas.
last insert id, ya lo utilicé en ese código y cumplió con mi objetivo. Relataré el problema más a detalle.
todo el código está en miarchivo.php el cuál, en resumen tiene el siguiente código:
Código PHP :
<script language="JavaScript" src="js/switchParaCampos.js"></script>
<script type="text/javascript" src="js/validacion_viva.js"></script>
<link rel="stylesheet" type="text/css" href="css/validacion_viva.css" />
<?
include 'includes/funciones/conexion.php';
include 'includes/funciones/mensaje.php';
include 'includes/funciones/fechas.php';
include 'includes/clases/class.ciudad.php';
include 'includes/clases/class.usuario.php';
include 'includes/clases/class.ofertaLaboral.php';
include 'includes/clases/class.categoriaDeConocimiento.php';
include 'includes/clases/class.especialidadDeConocimiento.php';
include 'includes/clases/class.conocimiento.php';
include 'includes/clases/class.ofertalaboral_has_conocimiento.php';
$ciudades=new ciudad();
$ciudades=$ciudades->listarCiudades();
$cantidadDeCiudades=count($ciudades);
$usuario=$_SESSION['usuario'];
$empresa=new usuario();
$empresa->buscarIdUsuario($nombreUsuario);
$txtIdEmpresa=$empresa->idUsuario;
$ofertas=new ofertaLaboral();
$ofertas=$ofertas->buscarOfertasLaboralesDeEmpresa($txtIdEmpresa);
$cantidadDeOfertas=count($ofertas);
/************ Operaciones para Formulario de Oferta Laboral *************/
// Crear nueva oferta
if(isset($btn_guardar)){
if($txtPreguntas==0){
if($txtSiOtroConocimiento=0){
$insertarOfertaLaboral=new ofertaLaboral();
$insertarOfertaLaboral->crearOfertaLaboral('',$txtTituloOferta,'no publicado',$txtSector,$txtDireccion,$txtContrato,$txtSalario,$txtBeneficios,$txtOtrosBeneficios,$txtVacantes,$txtDuracion,$txtSexo,$txtLicencia,$txtEstadoCivil,$txtViajar,$txtNivelViaje,$txtResidencia,$txtNivelEducativo,$txtCargo,$txtPersonasACargo,'','','','',$txtDescripcion,'','','','','','','','','','','','','',$txtIdEmpresa,$txtCiudad);
$id_oferta=$insertarOfertaLaboral->id_oferta;
}
elseif($txtSiOtroConocimiento=1){
$insertarOfertaLaboral=new ofertaLaboral();
$insertarOfertaLaboral->crearOfertaLaboral('',$txtTituloOferta,'no publicado',$txtSector,$txtDireccion,$txtContrato,$txtSalario,$txtBeneficios,$txtOtrosBeneficios,$txtVacantes,$txtDuracion,$txtSexo,$txtLicencia,$txtEstadoCivil,$txtViajar,$txtNivelViaje,$txtResidencia,$txtNivelEducativo,$txtCargo,$txtPersonasACargo,$txtOtroConocimiento,$txtNivelOtroConocimiento,$txtExperienciaOtroConocimiento,$txtDescripcionOtroConocimiento,$txtDescripcion,'','','','','','','','','','','','','',$txtIdEmpresa,$txtCiudad);
$id_oferta=$insertarOfertaLaboral->id_oferta;
}
}
elseif($txtPreguntas==1){
if($txtPregunta1==''||$txtPregunta2==''||$txtPregunta3==''||$txtPregunta4==''||$txtPregunta5==''){
mensajeAlerta("Usted no ha formulado todas las preguntas para los candidatos, de todas maneras su oferta fue guardada");
if($txtSiOtroConocimiento=0){
$insertarOfertaLaboral=new ofertaLaboral();
$insertarOfertaLaboral->crearOfertaLaboral('',$txtTituloOferta,'no publicado',$txtSector,$txtDireccion,$txtContrato,$txtSalario,$txtBeneficios,$txtOtrosBeneficios,$txtVacantes,$txtDuracion,$txtSexo,$txtLicencia,$txtEstadoCivil,$txtViajar,$txtNivelViaje,$txtResidencia,$txtNivelEducativo,$txtCargo,$txtPersonasACargo,'','','','',$txtDescripcion,$txtPregunta1,$txtRespuesta1,$txtPregunta2,$txtRespuesta2,$txtPregunta3,$txtRespuesta3,$txtPregunta4,$txtRespuesta4,$txtPregunta5,$txtRespuesta5,'','','',$txtIdEmpresa,$txtCiudad);
$id_oferta=$insertarOfertaLaboral->id_oferta;
}
elseif($txtSiOtroConocimiento=1){
$insertarOfertaLaboral=new ofertaLaboral();
$insertarOfertaLaboral->crearOfertaLaboral('',$txtTituloOferta,'no publicado',$txtSector,$txtDireccion,$txtContrato,$txtSalario,$txtBeneficios,$txtOtrosBeneficios,$txtVacantes,$txtDuracion,$txtSexo,$txtLicencia,$txtEstadoCivil,$txtViajar,$txtNivelViaje,$txtResidencia,$txtNivelEducativo,$txtCargo,$txtPersonasACargo,$txtOtroConocimiento,$txtNivelOtroConocimiento,$txtExperienciaOtroConocimiento,$txtDescripcionOtroConocimiento,$txtDescripcion,$txtPregunta1,$txtRespuesta1,$txtPregunta2,$txtRespuesta2,$txtPregunta3,$txtRespuesta3,$txtPregunta4,$txtRespuesta4,$txtPregunta5,$txtRespuesta5,'','','',$txtIdEmpresa,$txtCiudad);
$id_oferta=$insertarOfertaLaboral->id_oferta;
}
}
}
//Insertar los conocimientos de la oferta
$categorias=new categoriaDeConocimiento();
$categorias=$categorias->listarCategoriasDeConocimiento();
$num_Categorias=count($categorias);
$sinConocimientos=0;
for($k=0;$k<$num_Categorias;$k++){
$idCategoriaDeConocimiento[$k]=$categorias[$k]->idCategoriaDeConocimiento;
$especialidades=new especialidadDeConocimiento();
$especialidades=$especialidades->listarEspecialidadesDeConocimiento($idCategoriaDeConocimiento[$k]);
$num_Especialidades=count($especialidades);
for($j=0;$j<$num_Especialidades;$j++){
$conocimientos=new conocimiento();
$conocimientos=$conocimientos->listarConocimientos($especialidades[$j]->idEspecialidadDeConocimiento);
$num_Conocimientos=count($conocimientos);
for($i=0;$i<$num_Conocimientos;$i++){
if(${"txtConocimiento".$conocimientos[$i]->idConocimiento}==true){
$insertarOfertaLaboral_has_Conocimiento=new ofertalaboral_has_conocimiento();
$insertarOfertaLaboral_has_Conocimiento->crearConocimientoDeOfertaLaboral(${"txtNivel".$conocimientos[$i]->idConocimiento},${"txtExperiencia".$conocimientos[$i]->idConocimiento},${"txtDescripcionConocimiento".$conocimientos[$i]->idConocimiento},$conocimientos[$i]->idConocimiento,$id_oferta);
}
elseif(${"txtConocimiento".$conocimientos[$i]->idConocimiento}==false){
++$sinConocimientos;
}
}
}
}
// FIN de Insertar los conocimientos de la oferta
// Mensaje para advertir la no existencia de conocimientos en una oferta guardada
$sinConocimientos=$sinConocimientos-1;
$num_Conocimientos=new conocimiento();
$num_Conocimientos=$num_Conocimientos->cantidadDeConocimientos();
if($sinConocimientos==$num_Conocimientos){
mensajeAlerta("Usted no ha seleccionado ningún CONOCIMIENTO, de todas maneras su oferta fue guardada");
}
}
/********* FIN de Operaciones para Formulario de Oferta Laboral **********/
$ACCION=$_GET['accion'];
?>
<table border="0" cellpadding="0" cellspacing="0" width="795">
<tbody>
........
......
<?
//En este PHP muestro las ofertas insertadas
?>
.....
<?
if($ACCION==insertarOferta){
?>
<!--Formulario para ingreso de Oferta Laboral -->
<form name="ofertaLaboral" method="post" action="">
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
--------
------ (datos del formulario)
-----
---
</form>
<?
}
?>
........
........
........
</tbody>
</table>
Notar que el formulario tiene action="", lo cual llama a la misma página para insertar todos los datos del formulario, y es ahí donde está el problema.
En el código donde inserto conocimientos está una llamada a funciones en donde tomo last_insert_id() y con ello insertar los conocimientos que pertenecen a la misma oferta q se insertan en el formulario que llama a la misma página.
Todo funciona bien, los datos de la oferta se insertan y los conocimientos q pertenecen a esa oferta, utilizando last_insert_id() también se ingresan, el problema está en que, si se fijan, luego del primer bloque de php donde se inserta todo, viene HTML y luego otro código PHP donde muestro todas las ofertas insertadas (*las ofertas sí se muestran excepto la última insertada), luego más HTML, luego el mismo formulario con el que podré ingresar otra oferta y finalizo con el cierre de una condición de PHP donde todo el formulario se muestra si la acción es igual a "insertarOferta".
*La última oferta insertada SÍ consta en la BDD, sin embargo no se muestra en la publiacación de todas las ofertas insertadas.
Por fa, si no lo entienden me avisan pa subir la aplicación a un hosting y puedan entenderlo mejor.
Gracias por su ayuda.