Reputation: 171
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
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