Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

728
Vistas
Codeigniter Actualización de datos de la base de datos desde un menú desplegable seleccionado

Estoy tratando de actualizar los nombres de la base de datos desde un menú desplegable de selección.

Esto es lo que tengo hasta ahora:

ver (exammenu_view.php)

 <form name='selectexam' action="<?php echo base_url() . "index.php/exam/select/";?>" method='post'> <div class="form-group"> <select class="form-control" name="exam_id"> <?php foreach($exams as $row) { echo '<option value="'.$row->exam_id.'">'.$row->examname.'</option>'; } ?> </select> </div> <label>Examen wijzigen</label> <div class="form-group"><input type="text" name="update" class="form-control" placeholder="Examennaam"></div> <div class="form-group"> <input type="submit" name="sbm" value="Wijzigen" class="btn btn-info" /> <input type="submit" name="sbm" value="Verwijderen" class="btn btn-info" /> </div> </form>

controlador (examen.php)

 function select() { if($_SERVER['REQUEST_METHOD'] == 'POST'){ if($this->input->post('sbm') == 'Verwijderen') { $exam_id = $_POST['exam_id']; $this->exam_model->removeExam($exam_id); if(!empty($exam_id)){ $this->session->set_flashdata('del','<div class="alert alert-success text-center">Examen verwijderd.</div>'); } elseif(empty($exam_id)){ $this->session->set_flashdata('del','<div class="alert alert-warning text-center">Er zijn geen examens gevonden om te verwijderen.</div>'); } redirect('/exam/'); } elseif($this->input->post('sbm') == "Wijzigen") { $data = $this->input->post('dname'); $this->exam_model->editExam($data); $this->getExamName(); } } }

modelo (modelo_examen.php)

 function getExamName(){ $query = $this->db->query('SELECT exam_id, examname FROM exam'); return $query->result(); } function removeExam($id){ $this->db->where('exam_id', $id); $this->db->delete('exam'); } function editExam($id){ $this->db->where('exam_id', $id); $this->db->update('exam', $id); }

Estoy recibiendo este error:

 A Database Error Occurred You must use the "set" method to update an entry. Filename: models/Exam_model.php

He intentado muchas cosas, pero no puedo entender cómo puedo hacer que funcione correctamente. Cualquier ayuda sería apreciada.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El error que ve se debe a que se pasó una variable con formato incorrecto para actualizar la tabla. En la función del modelo editExam, la variable $id se pasa para actualizar la columna, pero no contiene un formato de matriz.

Puedes usar:

 $data2 = array('table_column_name' => 'dname');

luego pasarlo a la funcion

 function editExam($id, $data2){ $this->db->where('exam_id', $id); $this->db->update('exam', $data2); }
over 4 years ago · Santiago Trujillo Denunciar

0

cambio

 $data = $this->input->post('dname'); $this->exam_model->editExam($data);

para

 $data = $this->input->post('update'); $this->exam_model->editExam($data,$exam_id);

luego cambie la función editarExamen

 function editExam($exam_id, $data) { $this->db->where('exam_id', $exam_id); $this->db->update('exam', $data); }
over 4 years ago · Santiago Trujillo Denunciar

0

Vista

 <form name='selectexam' action="<?php echo base_url() . "index.php/exam/select/";?>" method='post'> <div class="form-group"> <select class="form-control" name="exam_id"> <?php foreach($exams as $row) { echo '<option value="'.$row->exam_id.'">'.$row->examname.'</option>'; } ?> </select> </div> <label>Examen wijzigen</label> <div class="form-group"><input type="text" name="update" class="form-control" placeholder="Examennaam"></div> <div class="form-group"> <input type="submit" name="sbm" value="Wijzigen" class="btn btn-info" /> <input type="submit" name="sbm" value="Verwijderen" class="btn btn-info" /> </div> </form>

Controlador

 function select() { if($_SERVER['REQUEST_METHOD'] == 'POST'){ if($this->input->post('sbm') == 'Verwijderen') { $exam_id = $_POST['exam_id']; $this->exam_model->removeExam($exam_id); if(!empty($exam_id)){ $this->session->set_flashdata('del','<div class="alert alert-success text-center">Examen verwijderd.</div>'); } elseif(empty($exam_id)){ $this->session->set_flashdata('del','<div class="alert alert-warning text-center">Er zijn geen examens gevonden om te verwijderen.</div>'); } redirect('/exam/'); } elseif($this->input->post('sbm') == "Wijzigen") { $data2 = array( 'examname' => $this->input->post ('update'), ); $id = $_POST['exam_id']; $this->exam_model->editExam($id, $data2); $this->exam_model->getExamName(); } redirect('/exam/'); } }

Modelo

 function getExamName(){ $query = $this->db->query('SELECT exam_id, examname FROM exam'); return $query->result(); } function removeExam($id){ $this->db->where('exam_id', $id); $this->db->delete('exam'); } function editExam($id, $data2){ $this->db->where('exam_id', $id); $this->db->update('exam', $data2); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda