我制作了一个下拉列表。列表中有汽车的名称。 我想从 MySQLi 中删除下拉列表中选择的那辆车。 例如,我的数据库中有四辆车:car_id,car_name。 1、奥迪; 2、宝马; 3、马自达; 4、法拉利。
下拉列表中出现了四辆车,如果我选择宝马,我想从数据库中删除。
我制作了下拉列表:
<?php
echo "<br/>";
$result = $db->query("SELECT car_id, car_name FROM cars");
echo "<html>";
echo "<body>";
echo "<select name='id'>";
while ($row = $result->fetch_assoc()) {
unset($id, $name);
$id = $row['car_id'];
$name = $row['car_name'];
echo '<option value="'.$id.'">'.$name.'</option>';
}
echo "</select>";
echo "</body>";
echo "</html>";
?>
删除按钮表单:
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="POST">
<table>
<tr>
<td colspan="1"><input type="submit" name="Delete" value="Delete" /></td>
</tr>
</table>
</form>
删除代码:
<?php
if(isset($_POST['Delete'])) {
mysqli_query($db, "DELETE FROM cars where car_name = '$name' ");
}
?>
问题是它删除了数据库中的最后一个值,而不是我在下拉列表中选择的值。
最佳答案
将 select 包裹在 from 中,并获取汽车的 id
而不是名称。
<?php
// get the id of the selected car.
if (isset($_POST['Delete'])) {
$id = $_POST['id'];
mysqli_query($db, "DELETE FROM cars where car_id = '$id' ");
}
$result = $db->query("SELECT car_id, car_name FROM cars");
?>
<html>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="POST">
<select name='id'>
<?php while ($row = $result->fetch_assoc()) {
unset($id, $name);
$id = $row['car_id'];
$name = $row['car_name'];
echo '<option value="' . $id . '">' . $name . '</option>';
}
?>
<input type="submit" name="Delete" value="Delete">
</form>
</select>
</body>
</html>
关于php - 当我单击按钮时,如何识别 php 中的下拉列表值并在 MySQLi 中删除它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44095493/