Search code examples
phpcodeigniterhttp-status-code-404codeigniter-url

Codeigniter delete


I am trying to delete some data from my database via delete button in codeigniter...I did some research and came up with this link in my view...

<td><a href='hockey/deleteskater/" . $row->id . "'>Delete</a></td>

and this function in my controller

public function deleteskater($id){
        $this->load->database();
        $this->db->delete('skaters', array('id' => $id));
    }

But I get a 404 Not Found Page...what am I doing wrong?


Solution

  • That's because:

    1. The url likely gets interperted wrong (all the segments appended to the current url)
    2. More important: you didn't print out the variable...just '$row->id' as a string. That's not php-html interpolation

    Should be:

    <td><a href="<?php echo site_url("hockey/deleteskater/" . $row->id);?>"
         onclick="return confirm('Delete content?');">Delete</a></td>
    

    I took the liberty to at least add an onclick alert so that you don't inadvertitely delete something just by misclicking.
    Also, destructive action should be carried through a POST request (and a CSRF token to increase security).