首页 > 解决方案 > Codeigniter 编辑(检查重复 + 如果未找到重复则允许更新)

问题描述

检查编辑功能上的重复项

目前我的数据库表

USERDB
userId userName userPassword userEmail userAddress userPhone

我想要的是

允许检查“用户名”重复”,如果“用户名”返回 true,则允许编辑其他文本字段。

遇到的问题:

当我没有更改“用户名”字段上的任何内容并且我编辑了用户电子邮件时,由于我的“用户名”与当前数据库数据重复,它将始终返回 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');        
}

标签: phpcodeignitercodeigniter-3

解决方案


对于这个问题,您必须发送用户 ID,您可以在哪个函数中检查用户名的重复。

$this->userdb->UsernameDuplicatechecking($userName,$id);

将用户 ID 发送到函数UsernameDuplicatechecking之后。添加 where 条件 userID 不等于当前 ID。

$this->db->where("userId <> $id");

我希望这能解决你的问题。


推荐阅读