我想从mySQL数据库中删除一行。我想删除的行显示在一个框中,每行都通过循环和Select语句获得。
我已经相应地显示了数据库中的行;但是,我想要一个按下按下的按钮,可以从数据库中删除所选选项。
这是我当前的代码:
<form action="" method="post">
<label>Patient Name:</label>
<br><br>
<select name="patient" id="patient">
<?php
$conn = new mysqli("localhost", "root", "", "as2");
$result = $conn->query("SELECT patientID, patientName, address FROM patient ORDER BY patientName ASC");
while ($row = $result->fetch_assoc()){
$patientName = $row['patientName'];
$address = $row['address'];
echo "<option value="patient">" .$patientName. ", ".$address."</option>";
}
?>
</select>
<input type="submit" name="delete" value="Delete Record">
</form>
我将如何从数据库中删除所选选项?
字符串中的第一个记录
$patientID = $row['patientID'];
然后将$patientID
添加到(选项值),因此它变为:
echo "<option value=".$patientID.">" .$patientName. ", ".$address."</option>";
然后在所有内容之后添加此代码(OFC在" while"循环之外):
<?php
$selected_patient = $_POST['patient'];
if( $_SERVER['REQUEST_METHOD'] === 'POST'
&& isset($_POST['delete']) && isset($_POST['patient']) ) {
if( !empty($_POST['patient']) ){
$patient_ID = mysql_real_escape_string($selected_patient);
if ( $conn->query("DELETE FROM patient WHERE patientID={$patient_ID}") )
echo "user has been deleted successfully";
else
echo "Error deleting";
}
}
?>
单击"删除"按钮刷新您的页面和繁荣之后,您现在很高兴!,用户将消失如果您想要实时操作,则可以使用(AJAX)
尝试此
while ($row = $result->fetch_assoc()){
$patientName = $row['patientName'];
$address = $row['address'];
$patientID = $row['patientID']; //get patient id
echo "<option value="$patientID">" .$patientName. ", ".$address."</option>"; // change in option value
}
现在在表单上提交,您将在$_POST['patient']
中获得患者ID,可以编写您的删除查询。
希望这会希望。