db 테이블의 모든 항목을 표시하는 동적 테이블이 있습니다. 각 행에는 삭제 단추가 있습니다.이 단추 중 하나를 클릭하여 데이터베이스의 항목을 삭제할 수 있다고 가정합니다. 하지만 작동하지 않습니다. phpmyadmin에서 삭제할 수 있습니다. 여기 내 PHP와 SQL 코드입니다 :MySQL에서 웹 응용 프로그램에서 삭제할 수 없습니다.
<?php
@$db = new mysqli('localhost', 'xxxx', 'xxx', 'WARD');
if (mysqli_connect_errno()) {
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
$query = "SELECT * FROM PATIENT";
$result = $db->query($query);
$num_results = $result->num_rows;
echo "
<form action=\"dbmgmt.php\" method=\"post\">
";
echo "
<table data-role=\"table\" id=\"table-column-toggle\" data-mode=\"columntoggle\" class=\"ui-responsive table-stroke\">
<thead>
<tr>
<th data-priority=\"2\">
Patient_ID
</th>
<th>
Patient Name
</th>
<th data-priority=\"3\">
Patient IC
</th>
<th data-priority=\"1\">
Phone
</th>
<th data-priority=\"5\">
Address
</th>
<th data-priority=\"5\">
Date Admit
</th>
<th data-priority=\"5\">
Date Discharge
</th>
</tr>
</thead>
<tbody>
";
echo "
</form>
";
//This form is for submission of gymid to the reservation page.
echo "
<form action=\"dbmgmt.php\" method=\"post\">
";
for ($i = 0; $i < $num_results; $i++) {
$row = $result->fetch_assoc();
if (stripslashes($row['Patient_ID']) == !0) {
echo "
<tr>
" . PHP_EOL;
echo "
<td align=\"center\">
" . stripslashes($i + 1) . "
</td>
" . PHP_EOL;
echo "
<td align=\"center\">
" . stripslashes($row['Patient_Name']) . "
</td>
" . PHP_EOL;
echo "
<td>
" . stripslashes($row['Patient_IC']) . "
</td>
" . PHP_EOL;
echo "
<td align=\"center\">
" . stripslashes($row['Phone']) . "
</td>
" . PHP_EOL;
echo "
<td align=\"center\">
" . stripslashes($row['Address']) . "
</td>
" . PHP_EOL;
echo "
<td align=\"center\">
" . stripslashes($row['Date_Admit']) . "
</td>
" . PHP_EOL;
echo "
<td align=\"center\">
" . stripslashes($row['Date_Discharge']) . "
</td>
" . PHP_EOL;
echo "
<td align=\"center\">
<button type=\"submit\" name = \"deleteEntry\" value = \"" . stripslashes($row['Patient_ID']) . "\">
Delete
</button>
</td>
" . PHP_EOL;
echo "
</tr>
" . PHP_EOL;
}
}
echo "
</tbody>
</table>
";
echo "
</form>
";
$delete = NULL;
if (isset($_POST['deleteEntry'])) {
$delete = $_POST['deleteEntry'];
}
$deletequery = "DELETE FROM PATIENT
WHERE Patient_ID = $delete";
$deleteresult = $db->query($deletequery);
$result->free();
$db->close();
?>
업데이트 : delete.php
라는 또 다른 파일을 만든 너무 게시물을 변경합니다.
<form action=\"delete.php\" method=\"post\">
<?php
@ $db = new mysqli('localhost', 'xxxx', 'xxxx', 'WARD');
if (mysqli_connect_errno()) {
echo 'Error: Could not connect to database. Please try again later.';
exit;
}
$delete = NULL;
if(isset($_POST['deleteEntry'])){ $delete = $_POST['deleteEntry'];}
//$deletequery = "DELETE FROM PATIENT
// WHERE Patient_ID = $delete";
//$deleteresult = $db->query($deletequery);
mysqli_query($db,"DELETE FROM PATIENT
WHERE Patient_ID = $delete");
header ('Location: dbmgmt.php');
$result->free();
$db->close();
?>
어떤 값을 u는 $ _POST [얻을
이 교체 : 당신은 또한
EDIT2을 삭제 AJAX를 사용할 수 있습니다 'deleteEntry']? –
MySQL에서 어떤 오류 메시지가 다시 나타 납니까? 실행중인 SQL과 오류 메시지를 에코 할 수 있습니까? 또한 SQL 쿼리에 포함 된 모든 값을 이스케이프 처리해야합니다. 내가 준비된 쿼리를 사용하는 것이 좋습니다 : http://php.net/manual/en/mysqli.prepare.php –
쿼리를 삭제하기위한 하드 코딩 된 값을 추가하려고 ... – Anri