亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Codeigniter 在編輯功能上檢查重復項

Codeigniter 在編輯功能上檢查重復項

PHP
HUH函數 2021-11-05 14:45:44
檢查編輯功能是否重復目前我的數據庫表USERDBuserId userName userPassword userEmail userAddress userPhone我想要的是允許檢查“userName”重復”,如果“userName”返回 true ,則允許編輯其他文本字段。遇到的問題:當我沒有更改“userName”字段中的任何內容,并且我編輯了 userEmail 時,由于我的“userName”與當前數據庫數據重復,它總是會返回 FALSE。$checkvalidation = $this->userdb->UsernameDuplicatechecking($userName);if($checkvalidation == TRUE){$this->userdb->updateUser($userName,$userEmail,$userAddress,$userPhone,$id);}else{  $this->session->set_flashdata('errormessage', 'Duplicate');  redirect("User/EditUserAccount/$id");  }更新型號代碼public function updateUser($userName,$userEmail,$userAddress,$userPhone,$id);{    $UserArray = array(                    'userName' => $userName,                    'userEmail' => $userEmail,                    'userAddress' => $userAddress,                    'userPhone' => $userPhone,                                    );    $this->db->set($UserArray);    $this->db->where('userId',$id);    $this->db->update('USERDB');        }
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

請您分享函數 UsernameDuplicatechecking($userName) 的代碼,或者您可以嘗試以下解決方案,如果有幫助,請告訴我。將以下函數添加到您的 userdb 模型中


function checkDuplicateUsername($userName)

{

    $this->db->where('userName',$userName);

    $query = $this->db->get('USERDB');

    if ($query->num_rows() > 0){

        return true;

    }

    else{

        return false;

    }

}

現在更新您的控制器功能如下:


$checkvalidation = $this->userdb->checkDuplicateUsername($userName);

if($checkvalidation == true){

    $this->userdb->updateUser($userName,$userEmail,$userAddress,$userPhone,$id);

}else{

  $this->session->set_flashdata('errormessage', 'Your message here');

  redirect("User/EditUserAccount/$id");

}


查看完整回答
反對 回復 2021-11-05
?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

考慮到您的用戶名輸入名為userName,一種解決方案是您可以添加條件is_unique驗證,以便如果用戶不更改他/她的用戶名,則不要將其驗證為唯一的。

這可以通過userName按 id 從數據庫中提取用戶并將其與發布的userName值進行比較來完成:


$id = $this->input->post('id');

$old_username = $this->db->get_where('USERDB', array('userId' => $id))->row_array();

$original_value = $old_username['userName'];


if($this->input->post('userName') != $original_value) {

    $is_unique =  '|is_unique[USERDB.userName]'

} else {

    $is_unique =  ''

}


$this->form_validation->set_rules('userName', 'User Name', 'required|trim|xss_clean'.$is_unique);


查看完整回答
反對 回復 2021-11-05
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

而不是檢查 if ($query == true)。檢查 if ($validation == true) 和您的 else 條件是錯誤的,就像用戶名重復一樣,它將進入 if 條件。


查看完整回答
反對 回復 2021-11-05
  • 3 回答
  • 0 關注
  • 165 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號