我做了一个下拉列表。列表中有汽车的名称。我想从下拉列表中选择的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' ");
}
?>
问题是它删除了数据库中的最后一个值,而不是我在下拉列表中选择的值。
将
选择包装在 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>