Fanalea
Fanalea

Reputation: 171

Deleting from the database table

I want to give user possibility to delete other users. I made a script where user get list over all users with delete button. Button start the script but doesn't delete user from the list. Here is my code:

                                    function get_userlist(){
            $select_users = $this->db->prepare("SELECT user_id, fname, lname, email
                                            FROM user");
            $select_users->execute();

            echo "<tbody>";

            while($row = $select_users->fetch(PDO::FETCH_ASSOC)){
                echo "<form action='' method=''><tr><td>".$row["user_id"]."</td><td>".$row["fname"]."</td><td>
                ".$row["lname"]."</td><td>".$row["email"]."</td><td>
                <input type='hidden' name='user_id' value=".$row["user_id"] . " >
                <input type='submit' name='submit_delete' value='Delete'></td>
                </tr></form>";

            }
            echo "</tbody></table>";
        }

        function delete_user($user_id)
        {
            $delete_user = $this->db->prepare("DELETE FROM user WHERE user_id = :user_id");
            $delete_user->bindParam(':user_id', $user_id, PDO::PARAM_INT);
            $delete_user->execute();
        }

And file where I use those functions:

$user = new USER($con);
$user->get_userlist();

if(isset($_POST['submit_delete'])){
    $user_id = $_POST['user_id'];
    $user->delete_user($user_id);
}

What am I doing wrong?

Upvotes: -1

Views: 48

Answers (1)

mertizci
mertizci

Reputation: 528

You are not passing $user_id variable to your delete_user function. Edit your code like this:

function delete_user($user_id)
{
        $delete_user = $this->db->prepare("DELETE FROM user WHERE user_id = :user_id");
        $delete_user->bindParam(':user_id', $user_id, PDO::PARAM_INT);
        $delete_user->execute();
}

Upvotes: 1

Related Questions