首页 > 解决方案 > 无法从codeigniter中的数据库中删除数据

问题描述

我有一个关于codeigniter的项目。我想从数据库中删除数据。如果用户单击删除按钮,则应将其删除。

我的问题 我认为所有代码都在工作..但我认为id 没有进入controller 没有错误,但数据也没有从数据库中删除

offerfetch.php(查看)

<td><a type="button" class="btn btn-danger" href="<?= base_url('admin/delarticles'); ?>/<?php echo $emp->offer_id; ?>">Delete</a></td>

<td><a type="button"  class="btn btn-info" href="<?= base_url('admin/editoffer'); ?>/<?php echo $emp->offer_id; ?>">update</a></td>

admin.php(控制器)


  public function delarticles()
  {
    $id=$this->input->get('offer_id');
     $this->load->model('adminloginmodel');
       if($this->adminloginmodel->del($id))
       {
           $this->session->set_flashdata('insertsuccess','Delete Successfully');
           $this->session->set_flashdata('msg_class','alert-success');
       }
       else
       {
          $this->session->set_flashdata('insertsuccess','Please try again..not delete');
          $this->session->set_flashdata('msg_class','alert-danger');
       }
       return redirect('admin/viewoffers');
 
  }

为了调试 我用过

print_r($id);
exit();

在控制器中的行之后,$id=$this->input->get('offer_id');但我没有得到任何 id,空白页即将出现。

adminloginmodel.php(模型)


    public function del($id)
  {
      
    return $this->db->delete('offers',['offer_id'=>$id]);

  }

标签: phpcodeigniter

解决方案


您正在通过锚元素的 url 发送 id:

<a type="button" class="btn btn-danger" href="<?= base_url('admin/delarticles'); ?>/<?php echo $emp->offer_id; ?>">Delete</a>

这应该产生类似的东西:

href="your_app/admin/delarticles/1"

您正在尝试读取来自表单的输入字段的 id,这里不是这种情况,您可以从 url 直接在函数中访问它,例如

public function delarticles($id=0){
    if ($id){
        $this->load->model('adminloginmodel');
        if($this->adminloginmodel->del($id))
        {
           $this->session->set_flashdata('insertsuccess','Delete Successfully');
           $this->session->set_flashdata('msg_class','alert-success');
        }
        else
        {
          $this->session->set_flashdata('insertsuccess','Please try again..not delete');
          $this->session->set_flashdata('msg_class','alert-danger');
        }
        return redirect('admin/viewoffers');
    }else{
       // your code in case there is no value for $id, aka $id=0
    }
}

恢复:

  1. 如果您在此表单中使用表单和提交按钮,您会从表单的输入字段创建一个 $_POST 数组(例如<input type="text" name="offer_id">,您可以在控制器中使用$id=$this->input->get('offer_id');

  2. 使用锚元素并在 URL 中发送参数


推荐阅读