2014-03-03 61 views
0

我試過把開關放入我的模型頁面的代碼中,但它給了我服務器錯誤或者我的語法可能是錯誤的。我想要做的是每當degree的值等於一個特定值時,它將使用相應的名稱發佈或保存到數據庫。在ARRAY Codeigniter中使用SWITCH語句

這是我在我的模型頁面做的:

public function changeNow() { 
    $data = array(
     'name' => $this->input->post('name'), 
     'degree' => $this->input->post('degree'), 

     switch($this->input->post('degree')){ 
      case 'POST-BACC': 
       'high_degree_post_bacc'=>$this->input->post('high_degree_post_bacc'); 
       break; 
      case 'LLB': 
       'high_degree_llb'=>$this->input->post('high_degree_llb'); 
       break; 
      case 'MD': 
       'high_degree_md'=>$this->input->post('high_degree_md'); 
       break; 
     } 
    ); 

    $this->db->update('table_degree', $data); 
} 

如果我刪除開關,它運行。當我把它,它會給出錯誤。

的第一次嘗試:我做了什麼@Marc說

switch($this->input->post('degree')){ 

    case 'POST-BACC': 
     $data['high_degree_post_bacc']=>$this->input->post('high_degree_post_bacc'); 
      break;     }  //no luck: still got server error 

回答

0

switch('$this->input->post('degree'){

你在變量前面有一個'和缺少)

應該 switch($this->input->post('degree')){

你也試圖在一個內部使用switch語句陣列。

嘗試做這樣的事情

case 'POST-BACC': $data['high_degree_post_bacc'] = $this->input->post('high_degree_post_bacc'); break;

這是完整的答案:試試這個

public function changeNow() { 
    $data = array(
     'name' => $this->input->post('name'), 
     'degree' => $this->input->post('degree'), 
     ); 

    switch($this->input->post('degree')){ 
     case 'POST-BACC': 
      $data['high_degree_post_bacc'] = $this->input->post('high_degree_post_bacc'); 
      break; 
     case 'LLB': 
      $data['high_degree_llb'] = $this->input->post('high_degree_llb'); 
      break; 
     case 'MD': 
      $data['high_degree_md'] = $this->input->post('high_degree_md'); 
      break; 
    } 

    $this->db->update('table_degree', $data); 
} 
+0

抱歉,稍有不慎,我沒有你所說的話(見我的編輯第一次嘗試以上)但仍然沒有運氣。你怎麼看? – Kino

+0

你的錯誤是什麼?你是否從數組任務中切換了切換? – Marc

+0

服務器錯誤。我沒有加載。我認爲這裏的語法是錯誤的。 – Kino