2014-04-15 167 views
3

只想通過傳遞id從db表中刪除行。請幫助我正確地從視圖中傳遞id。任何幫助將不勝感激。請讓我知道是否需要任何詳細信息,以便我可以提供。Codeigniter從db中刪除行

這裏是我的模型:

public function did_delete_row($user_id){ 

$query = $this->db->get_where('users',array('user_id' => $user_id)); 

    if ($query->num_rows() == 1) { 

    if ($this->db->delete('users',array('user_id','email','name','city'))) 

     {return true;} 

     else 

     {return false;} 
    } else {return false;} 

       } 

這裏是我的看法:

<a href="<?php echo site_url('admin/delete_row/'.$user_id);?">Delete</a> 

這裏是我的控制器:

public function delete_row($user_id) { 

     $this->load->model("model_admin"); 
     $this->model_admin->did_delete_row($user_id); 

     } 
+0

您可以將查詢字符串附加到您的URL。像:'/ delete_row?id = 1'。然後你可以使用'$ this-> input-> get('id');' –

+0

來檢索id。我剛剛編輯了我的代碼。你現在可以檢查一下嗎? – NiceTry

+0

delete將第二個參數作爲關聯數組('WHERE'子句)接受。你需要'$ this-> db-> delete('users',array('user_id'=> $ this-> input-> get('user_id')))'。你也在'get_where'子句中使用了分號';' –

回答

9

在你的HTML ....你應該通過用戶名刪除像這樣

<a href="<?php echo site_url('admin/delete_row/'.$user_id_to_delete);?>">Delete</a> 

AND in Controller你應該捕獲這個用戶ID我已經通過用戶ID作爲get方法。你可以嘗試POST方法..這裏是控制器代碼

public function delete_row($user_id) { 
    $this->load->model("model_admin"); 
    $this->model_admin->did_delete_row($user_id); 

    } 

現在,在模型你到這裏刪除USER_ID是您的管理模式

public function did_delete_row($id){ 
    $this -> db -> where('user_id', $id); 
    $this -> db -> delete('users'); 
} 

功能和更新刪除網址線路如下

<td><a href="<?php echo site_url('admin/delete_row/'.$user['user_id']);?">Delete</a></td> 

這應該爲你工作

+0

我根據你的建議改變了我的代碼,但是它爲控制器代碼產生了錯誤。我認爲我的觀點是錯誤的。我不知道我是否正確傳遞了ID。 – NiceTry

+0

給你的視圖和控制器代碼來生成視圖 – Fisherman

+0

我剛剛編輯我的問題,並添加了視圖和控制器代碼來生成視圖。請看看它。 – NiceTry

0
<?php 

require 'db_config.php'; 

$id = $_POST["id"]; 

$sql = "DELETE FROM items WHERE id = '".$id."'"; 

$result = $mysqli->query($sql); 

echo json_encode([$id]); 

?>