如何删除CodeIgniter中的特定表行?

时间:2016-02-11 17:40:52

标签: php mysql codeigniter

我是CodeIgniter的新手。如何删除CodeIgniter中的特定表行?我试图传递id变量,但什么也没发生。

这是我的观点:

<tbody>
    <?php foreach ($data as $row) { ?>
        <tr>
            <?php foreach ($row as $cell) { ?>
            <td><?php echo $cell; ?></td>               
            <?php } ?>
            <td><?php echo anchor('reports/delete_row',$this->lang->line("common_delete"),array('sale_id'=>'id')); ?></td>
        </tr>
    <?php } ?>
</tbody>

这是我的控制者:

public function delete_row()
{       
    $id = $this->input->get('id');
    $this->load->model("reports/summary_sales");
    $this->summary_sales->row_delete($id); 
}

这是我的模特:

public function row_delete($id){
    $this->db->delete('sales', array('id' => 'sale_id')); 
}

我的var_dump($cell)

string(11) "Rp.-1980.00" string(9) "Rp.500.00"

这是我的var_dump($row)

array(5) { 
[0]=> string(1) "1" 
[1]=> string(10) "2016-01-30" 
[2]=> string(8) "Rp.20.00" 
[3]=> string(8) "Rp.20.00" 
[4]=> string(11) "Rp.-1980.00" 
} 
array(5) { 
[0]=> string(2) "13" 
[1]=> string(10) "2016-02-01" 
[2]=> string(10) "Rp.3000.00" 
[3]=> string(10) "Rp.3000.00" 
[4]=> string(9) "Rp.500.00" 
}

2 个答案:

答案 0 :(得分:2)

试试这个。肯定会工作

public function row_delete($id)
{
    $this->db->where('sale_id',$id);
    $this->db->delete('sales');
}

答案 1 :(得分:1)

桌子上的字段名称是什么?

idsale_id

问题似乎在这里

public function row_delete($id){
     $this->db->delete('sales', array('id' => $id)); 
}

// or

public function row_delete($id){
    $this->db->delete('sales', array('sale_id' => $id)); 
}
编辑:可能问题出在您的<a>标记中, 你应该好像你做得不好 这样做并连接$ row [0](似乎是你的id)。

查看

<?php echo anchor('reports/delete_row/'.$row[0],$this->lang->line("common_delete"),array('sale_id'=>'id')); ?>
//-----------------------------------^^^^^^^^^^ 
//------------------------your row id goes here

确保它很好地到达您的控制器,我还建议您更改控制器功能并添加参数$id

<强>控制器

public function delete_row($id)
{       
    //$id = $this->input->get('id');
    $this->load->model("reports/summary_sales");
    $this->summary_sales->row_delete($id); 
}

希望这有帮助