使用下拉列表从表中删除


Deleting from table using drop down list

我在从mySQL表中删除时遇到问题。我正在使用下拉列表来选择需要删除的名称(id)。请帮忙。

         <h1><a href="#" class = "2">Delete product</a></h1>
         <form method="post" action = "Delete.php">
         <div class="Delete">
         <select>
<?php
    require('connect.php');
    $query = mysql_query("SELECT name FROM `products`");
    $id = mysql_query("SELECT id FROM `products`");
    while($row=mysql_fetch_array($query)){
    echo "<option value='". $row = $_POST['id']."'>".$row['name'].'</option>';
}
?>
</select>
     <input type="submit" name="" value="Delete">
 </form>
         </div>

这就是剧本。它在第 10 行 - if(isset($_POST['id'])){ 上出错

<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
    require('connect.php');
    $id = mysql_query("SELECT id FROM `products`");
    if(isset($_POST['id'])){
    $id = mysql_real_escape_string($_POST['id']);
        $query2 = "DELETE FROM `products` WHERE id = '$id'";
        $result=mysql_query($query2);
        if($result){
            header("Location: tools.php");
            exit;
        }
        else{
            echo"ERROR";
        }
    }
    else{
        echo"Bad ID";
    }
}
?>

试试这样的事情

//Give select a name so delete.php can hook into it
<select name="product_id">
<?php
require('connect.php');
//Merge your 2 queries into one
$query = mysql_query("SELECT id, name FROM products");
//Fix value fetching in your while loop
while($row=mysql_fetch_array($query)){
    echo "<option value='". $row['id']."'>".$row['name'].'</option>';
}
?>
</select>

然后在您的提交脚本中

<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
    require('connect.php');
    //Look for select name
    if(isset($_POST['product_id'])){
        //Get ID from select value
        $id = mysql_real_escape_string($_POST['product_id']);
        $query = "DELETE FROM products WHERE id = '$id'";
        $result = mysql_query($query);
        if($result){
           header("Location: tools.php");
           exit;
        }
        else{
           echo"ERROR";
        }
    }
    else{
        echo"Bad ID";
    }  
}
?>

我还没有对此进行测试,但如果有的话,只需稍作调整,它现在应该对您有用。

我做了什么

  • 提供您的名称,以便可以通过删除来获取它.php
  • 将您的产品名称、id 提取查询合并为 1 个查询
  • 杀死了那个$row = $_POST['id'] 语句 :S
  • 在删除中.php选中选择名称(在项目符号 2 中给出)
  • 清理所选值上的 ID
  • 运行删除查询

希望这有帮助