作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的表中,我有四列。
我所做的就是从用户那里对公司(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/
我正在使用 Codeigniter,问题是我的 Controller 中有重复很多的特定代码,我需要将这段代码放在一个地方,然后在 Controller 中调用它。 例子: public funct
我真的很想知道我该怎么做,我有 3 个页面具有指向 1 个页面的相同链接,现在我想要做的是拥有 1 个足够智能的按钮来获取使用了 3 个页面中的哪一个转到该页面并使用它作为返回上一页的链接。 如果有人
我需要从 site_url() 返回值中删除 index.php我不希望搜索引擎缓存我的 URL 包含 index.php。 我通过设置 .htaccess 文件从 url 中删除了 index.ph
我是一名优秀的程序员,十分优秀!