Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从下拉列表中删除值_Php - Fatal编程技术网

Php 从下拉列表中删除值

Php 从下拉列表中删除值,php,Php,我正在尝试编写一个函数,该函数允许我从下拉列表中删除选定的值 <?php require_once("db.inc.php"); ?> </head> <body> <form action="" method="POST"> <?php $stmt = $mysqli->prepare("SELECT anr, name FROM artikel"); $stmt->execute(); $stmt->bind

我正在尝试编写一个函数,该函数允许我从下拉列表中删除选定的值

<?php
require_once("db.inc.php");
?>
</head>
<body>
<form action="" method="POST">
 <?php





$stmt = $mysqli->prepare("SELECT anr, name FROM artikel");
$stmt->execute();
$stmt->bind_result($anr, $name);


echo "<select name='selected_name'><br />";

while ($stmt->fetch()) {

echo '<option value='.$anr.'>'.$anr.' | '.$name.'</option>';


if(isset($_POST['loeschen'])){

    $stmt = $mysqli->prepare("DELETE FROM artikel WHERE anr=?");
        $stmt->bind_param('i', $anr);
        $stmt->execute();
        $stmt->close();
        $mysqli->close();

    }

}   


  ?>
  <input type="submit" value="Datensatz löschen" name="loeschen">
</form>
</body>
</html>


我的问题是,即使我没有按下提交按钮,这些值也会被删除。提前感谢您的建议。

使用Post value而不是$anr

<?php
require_once("db.inc.php");
?>
</head>
<body>
<?php
if(isset($_POST['selected_name'])){

    $stmt = $mysqli->prepare("DELETE FROM artikel WHERE anr=?");
        $stmt->bind_param('i', $_POST['selected_name']);
        $stmt->execute();
        $stmt->close();
        $mysqli->close();

    }

}
?>
<form action="" method="POST">
 <?php

$stmt = $mysqli->prepare("SELECT anr, name FROM artikel");
$stmt->execute();
$stmt->bind_result($anr, $name);
echo "<select name='selected_name'><br />";
while ($stmt->fetch()) {
echo '<option value='.$anr.'>'.$anr.' | '.$name.'</option>';
}
echo "</select>";
  ?>
  <input type="submit" value="Datensatz löschen" name="loeschen">
</form>
</body>
</html>

唯一的错误是没有使用下面的
$stmt->bind_param('i',$anr)

   $stmt->bind_param('i', $_POST['selected_name']));

在选择要显示的行之前,需要从数据库中删除该行。还请注意,您的代码将删除数据库中的所有选项;您没有检查/使用
$\u POST['selected\u name']
的值。是否要在不提交的情况下删除所选值?否,我只想在提交后删除此问题是否仍然存在?没有解决?您给出了一些答案,但没有人接受我如何接受答案?感谢大家的帮助。按下提交按钮后,我收到以下建议:警告:mysqli::prepare():无法在第24行的C:\xampp\htdocs\ysql7\test.php中获取mysqli致命错误:调用成员函数execute()在C:\xampp\htdocs\ysql7\test.php中第25行的非对象上,选择了值整数或字符串。我发现了问题。这是“mysqli->Close”代码。