user1269625
user1269625

Reputation: 3209

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?

Upvotes: 0

Views: 4497

Answers (3)

Shina
Shina

Reputation: 2064

You can use the default Codeigniter anchor.

<td><?php echo anchor("hockey/deleteskater/'. $row->id . '", "Delete"); ?></td>

Upvotes: 0

xelber
xelber

Reputation: 4637

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

Should be

<td><a href='hockey/deleteskater/<?php echo $row->id ?>'>Delete</a></td>

Upvotes: 1

Damien Pirsy
Damien Pirsy

Reputation: 25445

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).

Upvotes: 4

Related Questions