gpt4 book ai didi

php - 代码点火器 : update records if records exists there or then insert new records

转载 作者:行者123 更新时间:2023-11-29 10:53:36 27 4
gpt4 key购买 nike

在我的表中,我有四列。

  • r_id
  • id(用户 ID)
  • v_id(公司 ID)

我所做的就是从用户那里对公司(v_id)进行评分。

假设,如果用户一对第一家公司(v_id)进行评分,那么当同一用户对同一公司进行评分时,评分列会自动更新。如果用户一想要评价另一家公司,则表中将添加一个新行。但就我而言 当同一用户再次对公司进行评分时,新行将插入到表中。

型号

我不知道我在这个模型中哪里做错了。

function ratings($insert,$id,$update,$v_id) {
// $this->db->where('id',$id);
// $this->db->where('v_id',$v_id);
// $run = $this->db->get('user_ratings');
// if ($run->num_rows() >= 1) {
// $this->db->where('id',$id);
// $this->db->update('user_ratings',$update);

// }else {
// // $this->db->set('user_id', $id);
// $this->db->insert('user_ratings',$insert);
// }

$query = $this->db->query('select id, v_id from user_ratings where id = "'.$id.'" and v_id = "'.$v_id.'"')->num_rows();

if ($query > 0) {
$this->db->query('update user_ratings set rate ="'.$update.'" where id = "'.$id.'"');
}else {
$this->db->insert('user_ratings',$insert);
}
}

Controller

function ratings() {
$id = $this->session->userdata('id');
$v_id = $this->uri->segment(3);
$insert= array (
'rate' => $this->input->post('click_val'),
'date' => date('Y-m-d H:i:s'),
'v_id' => $this->input->post('company_id'),
'id' => $this->input->post('id')
);
$update = array (
'rate' => $this->input->post('click_val'),
'date' => date('Y-m-d H:i:s'),

);
$this->Visa_mdl->ratings($value,$id,$update,$v_id);
}

最佳答案

你走在正确的道路上。这些简单的更改应该可以完成工作。

型号

function ratings($data, $id, $v_id)
{
$query = $this->db->query("select r_id from user_ratings where id = $id and v_id = $v_id");
if($query->num_rows() > 0)
{
$data['r_id'] = $query->row()->r_id;
return $this->db
->where('id', $id)
->where('v_id', $v_id)
->update('user_ratings', $data);
}
else
{
return $this->db->insert('user_ratings', $data);
}
}

该方法返回 true 或 false 来指示结果。

您的 Controller 已修改为可与上述配合使用

function ratings()
{
$id = $this->session->userdata('id');
$v_id = $this->input->post('company_id');

$data = array(
'rate' => $this->input->post('click_val'),
'date' => date('Y-m-d H:i:s'),
'v_id' => $v_id,
'id' => $id
);
$this->Visa_mdl->ratings($data, $id, $v_id);
}

关于php - 代码点火器 : update records if records exists there or then insert new records,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43347230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com