When updating, duplicate data is inserted into the database in the encoder

I inserted data into a table using $this->db->insert(). When the data is inserted successfully, the message should be displayed, and the data should not be re-inserted.

:

public function index($message = '') {
    $this->load->template('homePage');
}

/**
 * Insert functionlaity
 */
public function insert() {
    if ($_POST['save']) {
        $result = $this->home->insertEntry();
        $data['message'] = ($result > 0) ? 'saved' : 'Not';
        redirect('HomeController',$data);
    }
    $this->load->view('homePage');
}

Model:

public function insertEntry()
{
    $this->name    = $_POST['name'];
    $this->email   = $_POST['email'];
    $this->db->insert('users', $this);
    return $this->db->affected_rows();

}

View:

    <div class="container sampleForm"><?php
echo isset ($message) ? $message : '';
echo form_open( get_class(get_instance()) . '/insert')
 . form_label('id') . form_input('id', isset($query['id']) ? $query['id'] : '', 'class="form-control"') . br()
 . form_label('name') . form_input('name', isset($query['name']) ? $query['name'] : '', 'class="form-control"') . br()
 . form_label('email') . form_custom_input('email','email', isset($query['email']) ? $query['email'] : '', 'class="form-control"') . br()
 . form_submit('save', 'save', 'class="btn btn-primary"')
 . form_close();
?> </div>

My problem is that if I can display the status, then the data insert for each else status update will not be displayed.

This should all work in my HomeController.php as a controller, Home.php as a model, and homePage.php as a view file. Not in any other files.

My logic is:

Ex: , , name, m1, m2, m3. , , . . . php.

+4
5

(, ) ( ).

$_SESSION .

, :

CONTROLLER:

if (isset($_POST['save'])) {
    $result = $this->home->insertEntry();
    $message = ($result > 0) ? 'saved' : 'Not';
    $this->session->set_userdata('message', $message);
    //redirect, avoid duplicate entries
    redirect('HomeController');
}

VIEW:

<div class="container sampleForm"><?php
    if($this->session->has_userdata('message')){
        echo $this->session->message;
        $this->session->unset_userdata('message');
    }

    echo form_open( get_class(get_instance()) . '/insert')
     . form_label('id') . form_input('id', isset($query['id']) ? $query['id'] : '', 'class="form-control"') . br()
     . form_label('name') . form_input('name', isset($query['name']) ? $query['name'] : '', 'class="form-control"') . br()
     . form_label('email') . form_custom_input('email','email', isset($query['email']) ? $query['email'] : '', 'class="form-control"') . br()
     . form_submit('save', 'save', 'class="btn btn-primary"')
     . form_close();
    ?> </div>
+1

:

public function inserttest() {
   if (isset($_POST['submit'])) {
       $result = $this->admin_model->insertEntry();     
       if($result>0) {
          // values are saved in session to display the message.
          $this->session->set_flashdata('message', 'Save');
       } else {
          $this->session->set_flashdata('message', 'No');
       }
       // To avoid duplicate redirect to another page
       redirect('admin/user/inserttest');
   } else {
       $this->load->view('admin/test');
   }
}

:

public function insertEntry()
{
     $data=array(

     'id'=>$_POST['id'],
     'name'=>$_POST['name'],
     'email'=>$_POST['email'],

     );


    $this->db->insert('test_check',$data);
    return $this->db->affected_rows();

}

:

<html>
    <body>
       <?php  if(isset($this->session->flashdata('message'))){ 
              echo $this->session->flashdata('message'); 
              }
       ?>
  <form action="" method="post">

    Id:<input type="text" name="id">

    Name:<input type="text" name="name">
    Email<input type="email" name="email">
    <input type="submit"  value="submit"  name="submit">

  </form>
</body>
</html>

flashdata: ellislab.com/codeigniter/user-guide/libraries/sessions.html

+1

,

if(!empty($submit))
{
    //echo "<pre>"; print_r($_POST); die;
    $data = $this->get_data_from_post();
    $unique_email = '|is_unique['.TBL_USERS.'.email]';
    $this->form_validation->set_rules('firstname', 'First Name', 'trim|required|min_length[2]|max_length[12]|xss_clean|htmlentities|prep_for_form|alpha');
    $this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean|valid_email|htmlentities|prep_for_form'.$unique_email);
    if($this->form_validation->run($this) == TRUE ){ 
        $data['name']    = $_POST['name'];
        $data['email']   = $_POST['email'];
        $res = $this->mdl_customer->_insert($data);
        redirect('home'); // where you want to redirect.
    }
}

, , , landing_page.php, , . : , , , !

, .

0

, , , action="", , ,

function add()
{
   if(isset($_POST{['submit']))
    {
     $result = $this->home->insertEntry();
     $data['message'] = $result ? 'saved' : 'Not';  
     redirect('add',$data);

    }

    $this->load->view('view page');  

}
0
$result = $this->home->insertEntry();
$data['message'] = $result ? 'saved' : 'Not';
$this->load->view('Your View page name ',$data);

and use the code below on the watch page to display a message

if(isset($message))
{
  echo $message;
}
-1
source

All Articles