【问题标题】:update another column if another column got post (Codeigniter) PHP如果另一列有帖子,则更新另一列(Codeigniter)PHP
【发布时间】:2018-04-06 19:51:50
【问题描述】:

我有这个仅显示 2 列的简单代码(步骤和反馈) 因此,每当“反馈”已提交或像下面我的控制器一样发布,并且“步骤”列将像 $step+=1 或使用查询update my_table set step = step + 1 where id = $user_id 进行更新,即如果“反馈”已提交“步骤”列总是递增 ++ 。

controllers/Person.php

public function ajax_update()
    {
        $data = array(

                //'step' => $this->input->post('step'),
                'feedback' => $this->input->post('feedback'),
            );
        $this->person->update(array('user_id' => $this->input->post('user_id')), $data);
        echo json_encode(["status" => TRUE]);
    } 

模型/Person_model.php

public function update($where, $data)
{
    $this->db->update($this->table, $data, $where);
    return $this->db->affected_rows();
}

视图/person_view.php

 <div class="form-group">
     <label class="control-label col-md-3">kcp naem</label>
          <div class="col-md-9">
             <input name="feedback" placeholder="status" class="form-control" type="text">
               <span class="help-block"></span>
          </div>
 </div> 

   <button type="button" id="btnSave" onclick="save()" class="btn btn-primary">Save</button>

加 jquery ajax 用于按钮 save()

function save()
{
    $('#btnSave').text('saving...'); //change button text
    $('#btnSave').attr('disabled',true); //set button disable 
    var url;

        url = "<?php echo site_url('person/ajax_update')?>";

    // ajax adding data to database
    $.ajax({
        url : url,
        type: "POST",
        data: $('#form').serialize(),
        dataType: "JSON",
        success: function(data)

    });
}

也许我们应该只关注控制器和模型。 在如何设置更新方面提供一些帮助会非常有用。

谢谢

【问题讨论】:

  • 所以您的问题是如何在查询生成器中编写“update my_table set step = step + 1 where id = $user_id”?
  • 是的,如果“反馈”首先发布,则使用声明
  • “可能”是什么意思?如果你不知道,我怎么知道你的问题是什么?
  • 我很抱歉,如果它有点混乱。但重点就是这样,你是对的,我想在查询生成器中写它

标签: php mysql codeigniter


【解决方案1】:

你可以在qb中使用以下方法:

$this->db->set('step', 'step+1', FALSE);
$this->db->where('user_id', $user_id);
$this->db->update('tablename');

https://www.codeigniter.com/userguide3/database/query_builder.html#updating-data


// controller
public function ajax_update() {
    $feedback = $this->input->post('feedback');
    $uid = $this->input->post('user_id');
    if (!is_null($feedback) && !is_null($uid)) {
        // only increment: "whenever the "feedback" has submited or post"
        $this->person->update_feedback($uid, $feedback);
        echo json_encode(["status" => TRUE]);
    } else {
        echo json_encode(['status' => FALSE]); //?
    }
}

// model
public function update_feedback($user_id, $feedback) {
    $this->db->set('step', 'step+1', FALSE);
    $this->db->set('feedback', $feedback);
    $this->db->where('user_id', $user_id);
    $this->db->update($this->table);
    return $this->db->affected_rows();
}

【讨论】:

  • 谢谢,但你能帮我在我的函数 ajax_update() 中的控制器中实现它
  • 很好,但它真的不言自明
猜你喜欢
  • 2013-11-23
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 2021-01-23
  • 1970-01-01
相关资源
最近更新 更多