PHP - 从MySQL删除项目的按钮

时间:2014-10-08 15:30:36

标签: php mysql

我正在编写一些视频上传脚本,我现在正在使用管理面板。 我有一个包含所有视频的列表。每个视频右侧都有一个删除按钮。 当我点击按钮时,应该从数据库中删除该视频,但是在我点击按钮后没有任何操作它不起作用。

    <?php

    $query = mysql_query("SELECT * FROM `videos`");
    while($row = mysql_fetch_assoc($query))
    {
    $id = $row['id'];
    $name = $row['name'];

    echo "<a href='watch.php?id=$id'>$name</a><br /> 
    <input type='submit' name='remove' value='Delete'<br />";
 }

     if (isset($_POST['remove']))
 {
      foreach ($_POST['id'] as $the_id)
      {
           if (!mysql_query("DELETE FROM videos WHERE id = '$the_id'"))
           {
                echo mysql_error();
           }
      }
 }


 ?>

当然在标题上我有mysql连接查询。这只是用于列出所有视频并尝试删除的PHP代码。

3 个答案:

答案 0 :(得分:0)

也许问题出在html中,每个删除按钮必须是独立的形式,带有id的隐藏输入。

echo "<a href='watch.php?id=$id'>$name</a><br /> 
    <form method='post'><input type='hidden' value='$id'><input type='submit' name='remove' value='Delete'<br /></form>";

答案 1 :(得分:0)

以下是使用MySQLi执行此操作的示例,包括用于避免SQL注入的绑定参数 -

if (isset($_POST['remove'])) {
   $remove = $mysqli->prepare("DELETE FROM `videos` WHERE `id` = ?");

   $vid_id = $_POST['vid_id'];
   $remove->bind_param('s', $vid_id);

   if(!$remove->execute() === true) {
       echo $mysqli->error;               
   }
}

$query = "SELECT * FROM `videos`";

if ($result = $mysqli->query($query)) {
   while($row = $result->fetch_object()){
       $id = $row->id;
       $name = $row->name;
       echo "<a href='watch.php?id=$id'>$name</a><br />"; 
       echo "<form name='delete_vid' method='post'>";
       echo "<input type='hidden' name='vid_id' value='$id'>";
       echo "<input type='submit' name='remove' value='Delete'<br />";
       echo "</form>";
    }
} else {
    echo mysqli_error($connection);
}
$result->close();

当然你必须为数据库提供一个$ connection`,但是这不仅可以让你开始使用MySQLi,还可以为每个视频添加一个表单。

More on SQL Injection

答案 2 :(得分:-1)

<form method="post" >
<?php

    $query = mysql_query("SELECT * FROM `videos`");
    while($row = mysql_fetch_assoc($query))
    {
    $id = $row['id'];
    $name = $row['name'];

    echo "<a href='watch.php?id=$id'>$name</a><br /> 
    <button name='id' value='".$id."' type='submit' >Delete</button>
    <br />";
 }


           if (!mysql_query("DELETE FROM videos WHERE id = '".$_POST['id']."'"))
           {
                echo mysql_error();
           } else {
               echo 'successfully deleted';
           }



 ?>
 </form>