2013-06-04 5 views
1

Я хочу добавить проверку формы, если ip_address дублируется только Оставайтесь на текущей странице или покажите мне какие-либо сообщения.необходимо добавить проверку формы codeigniter

это модель код

public function add_vote($option_id) 
    { 
     $this->db->insert($this->votes_table, array(
      'option_id' => $option_id, 
      'ip_address' => $this->input->ip_address(), 
      'timestamp' => time() 
     )); 

     return ($this->db->affected_rows() == 1) ? TRUE : FALSE; 
    } 

это контроллер

public function vote($poll_id, $option_id) 
    { 
     if (! $this->poll_lib->vote($poll_id, $option_id)) 
     { 
      $data['base_styles'] = 'public_html/res/css/base.css'; 
      $data['title'] = 'Sorry an error occured'; 
      $data['error_message'] = $this->poll_lib->get_errors(); 
      $this->load->view('header'); 
      $this->load->view('www/posts/postclose', $data); 
     } 
     else 
     { 
      redirect('posts', 'refresh'); 
     } 
    } 

услышать, если я добавить новое голосование это показывает мне ошибку базы данных, как столбец продублировать так я дон 't хочу показать, что если он перенаправит меня на любую другую страницу, это будет здорово, если вы останетесь на текущей странице все еще нормально или всплывающее сообщение.

+0

любой один ........ –

ответ

0

Сделайте проверку перед вставкой в ​​базу данных.

public function add_vote($option_id) 
    { 
     $query = $this->db->get_where($this->votes_table, array('ip_address' => $this->input->ip_address())); 

     if($query->num_rows() < 1) 

     { $this->db->insert($this->votes_table, array(
       'option_id' => $option_id, 
       'ip_address' => $this->input->ip_address(), 
       'timestamp' => time() 
      )); 

      return "Successfully Inserted"; 
     }else{ 
       return "Duplicate"; 
       } 
    } 

В контроллере обработки ответа и отображения соответственно

+0

Дорогой Джон Блейк, я должен добавить это к моей модели, как и есть изменить здесь, но он делает то же самое как это .. здесь, когда я вставляю его, я получаю сообщение с ошибкой базы данных, поэтому я не хочу, чтобы пользователи видели это, только если он дублируется, просто перенаправляйте меня на страницу или любой массаж. спасибо –

+1

Когда вы вставляете дубликаты, 'Duplicate' возвращается вместе с ошибкой базы данных? –

+0

, но я знаю, что хочу на моем контроллере или модели, если это дубликат, поэтому просто покажите мне массаж, как подтверждение формы. –

Смежные вопросы