Php 使用codeigniter检查数据库中是否存在数据
我有一个场景,我有两个表,即用户和请求,我要求用户填写一个表单,在这个表单中,他还必须填写电子邮件中的其他数据。现在我想,如果用户输入电子邮件,它只需在users表中添加数据并选择最后一个插入id,然后继续在request表中保存数据+最后一个插入id并显示消息 您的帐户已创建 到现在为止,我已经完成了编码,但我遇到的问题是 我希望,如果用户输入的电子邮件已经存在于users表中,那么代码应该选择针对该电子邮件存在的id,并将其与表单数据一起存储在request表中,并显示消息 “请求已提交,但您已拥有帐户,请登录到” 查看更多详细信息“ 用户表Php 使用codeigniter检查数据库中是否存在数据,php,codeigniter,Php,Codeigniter,我有一个场景,我有两个表,即用户和请求,我要求用户填写一个表单,在这个表单中,他还必须填写电子邮件中的其他数据。现在我想,如果用户输入电子邮件,它只需在users表中添加数据并选择最后一个插入id,然后继续在request表中保存数据+最后一个插入id并显示消息 您的帐户已创建 到现在为止,我已经完成了编码,但我遇到的问题是 我希望,如果用户输入的电子邮件已经存在于users表中,那么代码应该选择针对该电子邮件存在的id,并将其与表单数据一起存储在request表中,并显示消息 “请求已提交,但
id name email
1 sam sam@gmail.com
2 demo_user demo@gmail.com
请求表
id email userid
1 demo@gmail 2
控制器
public function submit()
{
$this->form_validation->set_rules('email','Email','trim|required');
if($this->form_validation->run() == FALSE)
{
$erdata = array
(
'error' => validation_errors()
);
$this->session->set_flashdata($erdata);
redirect('home/index');
}
else
{
if($this->user_model->instant_submit())
{
$this->session->set_flashdata('msg','Your account is created');
}
else
{
echo "failed";
}
redirect('home/index');
}
}
模型
看法
如果表单元素对于参数中的表和字段名不是唯一的,则返回FALSE
语法:
is_unique[table.field]
例如:
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');
这将解决您的问题是否唯一
如果表单元素对于参数中的表和字段名不是唯一的,则返回FALSE
语法:
is_unique[table.field]
例如:
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');
这将解决控制器中的问题,然后再调用此$This->user\u model->instant\u submit()
控制器
public function submit()
{
$this->form_validation->set_rules('email','Email','trim|required');
if($this->form_validation->run() == FALSE)
{
$erdata = array
(
'error' => validation_errors()
);
$this->session->set_flashdata($erdata);
redirect('home/index');
}
else
{
if(!$this->user_model->check_user_exist($this->input->post('email'))) {
if($this->user_model->instant_submit())
{
$this->session->set_flashdata('msg','Your account is created');
}
else
{
echo "failed";
}
} else {
//do whatever operation you want to do if user is already exist;
$this->session->set_flashdata('msg','Request is submitted but you already have an account, please login to check furthur details ');
}
redirect('home/index');
}
}
public function check_user_exist($email_id) {
$this->db->select('id');
$this->db->where('email',$email_id);
$query = $this->db->get('users');
$data = $query->row();
if($query->num_rows() == 1) {
return $data->id;
} else {
return false;
}
}
现在在您的模型中创建一个可以检查用户数据的函数
public function submit()
{
$this->form_validation->set_rules('email','Email','trim|required');
if($this->form_validation->run() == FALSE)
{
$erdata = array
(
'error' => validation_errors()
);
$this->session->set_flashdata($erdata);
redirect('home/index');
}
else
{
if(!$this->user_model->check_user_exist($this->input->post('email'))) {
if($this->user_model->instant_submit())
{
$this->session->set_flashdata('msg','Your account is created');
}
else
{
echo "failed";
}
} else {
//do whatever operation you want to do if user is already exist;
$this->session->set_flashdata('msg','Request is submitted but you already have an account, please login to check furthur details ');
}
redirect('home/index');
}
}
public function check_user_exist($email_id) {
$this->db->select('id');
$this->db->where('email',$email_id);
$query = $this->db->get('users');
$data = $query->row();
if($query->num_rows() == 1) {
return $data->id;
} else {
return false;
}
}
注意:请记住,如果找不到用户,它将发送false,因此它将为该用户创建一个新条目。在您的控制器中,然后调用此$this->user\u model->instant\u submit()
添加另一个条件以检查电子邮件id是否已存在或与下面类似
控制器
public function submit()
{
$this->form_validation->set_rules('email','Email','trim|required');
if($this->form_validation->run() == FALSE)
{
$erdata = array
(
'error' => validation_errors()
);
$this->session->set_flashdata($erdata);
redirect('home/index');
}
else
{
if(!$this->user_model->check_user_exist($this->input->post('email'))) {
if($this->user_model->instant_submit())
{
$this->session->set_flashdata('msg','Your account is created');
}
else
{
echo "failed";
}
} else {
//do whatever operation you want to do if user is already exist;
$this->session->set_flashdata('msg','Request is submitted but you already have an account, please login to check furthur details ');
}
redirect('home/index');
}
}
public function check_user_exist($email_id) {
$this->db->select('id');
$this->db->where('email',$email_id);
$query = $this->db->get('users');
$data = $query->row();
if($query->num_rows() == 1) {
return $data->id;
} else {
return false;
}
}
现在在您的模型中创建一个可以检查用户数据的函数
public function submit()
{
$this->form_validation->set_rules('email','Email','trim|required');
if($this->form_validation->run() == FALSE)
{
$erdata = array
(
'error' => validation_errors()
);
$this->session->set_flashdata($erdata);
redirect('home/index');
}
else
{
if(!$this->user_model->check_user_exist($this->input->post('email'))) {
if($this->user_model->instant_submit())
{
$this->session->set_flashdata('msg','Your account is created');
}
else
{
echo "failed";
}
} else {
//do whatever operation you want to do if user is already exist;
$this->session->set_flashdata('msg','Request is submitted but you already have an account, please login to check furthur details ');
}
redirect('home/index');
}
}
public function check_user_exist($email_id) {
$this->db->select('id');
$this->db->where('email',$email_id);
$query = $this->db->get('users');
$data = $query->row();
if($query->num_rows() == 1) {
return $data->id;
} else {
return false;
}
}
注意:请记住,如果未找到用户,它将发送false,因此它将为该用户创建一个新条目。这里有什么问题??只要用户数据通过验证,就不要插入…检查数据库中是否存在与该数据相关联的用户,并相应地采取行动..这里有什么问题??只要用户数据通过验证,就不要插入…检查数据库中是否存在与该数据相关联的任何用户,并相应地采取行动。。