【问题标题】:unable to delete data from database in codeigniter无法从codeigniter中的数据库中删除数据
【发布时间】:2020-07-06 23:42:25
【问题描述】:

我有一个关于 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-&gt;input-&gt;get('offer_id'); 行之后,但我没有得到任何 id,空白页即将出现。

adminloginmodel.php(模型)


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

  }

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您正在通过锚元素的 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 数组(例如 &lt;input type="text" name="offer_id"&gt; ,您可以在控制器中使用 $id=$this-&gt;input-&gt;get('offer_id') 读取该数组;

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

    【讨论】:

      【解决方案2】:

      您正在考虑向控制器传递数据的两种不同方式。如果您想将 ID 作为 URL 的一部分传递,您应该像 in the docs 一样进行传递。 在这种情况下,您可以在控制器方法中添加一个参数来解决它。

      如所见:

      admin.php

        public function delarticles($id)
        {
           $this->load->model('adminloginmodel');
             if($this->adminloginmodel->del($id))
         ...
      

      【讨论】:

        猜你喜欢
        • 2014-05-30
        • 2010-09-08
        • 1970-01-01
        • 2021-05-15
        • 2023-04-06
        • 2015-11-20
        • 1970-01-01
        • 1970-01-01
        • 2014-12-22
        相关资源
        最近更新 更多