Hola bueno con esto me funciona no se si podria optimizarlo o mejorar el codigo
controlador:
Código PHP:
$fecha_enc = date('Y-m-d', strtotime($_POST['fecha_enc']));
for ($i=0; $i<count($_POST['candidato']); $i++) {
$candidato[] = $_POST['candidato'][$i];
}
$this->_encuestas->registrarEncuesta(
$this->getPostParam('titulo'),
$this->getPostParam('cargo'),
$this->getPostParam('departamento'),
$this->getPostParam('provincia'),
$this->getPostParam('distrito'),
$fecha_enc,
$candidato);
Modelo:
Código PHP:
public function registrarEncuesta($titulo, $cargo, $departamento, $provincia, $distrito, $fecha_enc, $id_candidato)
{
try {
$this->_db->beginTransaction(); // iniciar transacción
// tabla 1
$this->_db->prepare("INSERT INTO encuestas (id, titulo, id_cargo, id_pais, id_departamento, id_provincia, id_distrito, fecha_encuesta, fecha_registro, usuario_registrador) VALUES (null, :titulo, :cargo, 1, :departamento, :provincia, :distrito, :fecha_enc, now(), '" . Session::get('id_usuario') . "')"
)->execute(array(
':titulo' => $titulo,
':cargo' => $cargo,
':departamento' => $departamento,
':provincia' => $provincia,
':distrito' => $distrito,
':fecha_enc' => $fecha_enc)
);
$lastReciboId = $this->_db->lastInsertId();
for ($i=0; $i<count($id_candidato); $i++) {
$sql = "INSERT INTO opciones (id, id_encuesta, id_candidato) VALUES (null, :id_encuesta, :id_candidato)";
$statement = $this->_db->prepare($sql);
$statement->execute(array(
':id_candidato' => $id_candidato[$i],
':id_encuesta' => $lastReciboId
));
}
$this->_db->commit();
echo 'Datos insertados';
} catch (PDOException $e) {
// si ocurre un error hacemos rollback para anular todos los insert
$this->_db->rollBack();
echo $e->getMessage();
}
}