mysql에서 2 개의 다른 테이블에서 가져온 데이터를 표시하는 테이블이 있습니다. 각 행에 삭제 버튼이 있습니다. 누를 때 삭제 쿼리가 실행됩니다. 행 및 모든 데이터는 데이터베이스의 관련 데이터입니다. 그러나삭제 버튼이 쿼리를 삭제하기 위해 올바른 값을 반환하지 않음
, 내가 클릭 삭제 버튼에 상관없이, 그것은 항상 마지막 삭제 된 테이블의 행, 그리고 삭제 버튼이있는 행입니다
내 테이블 :.
-------------------------------------------
|Username|Password|Branch Name|Branch Info|
----------------------------------------------------
|Sub1 |Pass1 |branch1 |1st branch |DELETE |
----------------------------------------------------
|Sub2 |Pass2 |branch2 |2nd branch |DELETE |<---this button is pressed
----------------------------------------------------
|Sub3 |Pass3 |branch3 |3rd branch |DELETE |
----------------------------------------------------
|Sub4 |Pass4 |branch4 |4th branch |DELETE |
----------------------------------------------------
|Sub5 |Pass5 |branch5 |5th branch |DELETE |<---this row is deleted.
----------------------------------------------------
내 코드 :
<?PHP
session_start();
if(@$_SESSION['Auth']!=="Yes" AND @$_SESSION['Type']!=="Admin")
{
echo"You are not authorised to view this page.Please click <a href='Login.php'>here</a> to login.";
exit();
}
?>
<?PHP
if(@$_POST['deluser']=="Delete")
{
include("cxn.inc");
print_r($_POST);
$id="$_POST[id]";
echo"$id";
if(empty($_POST["id"]))
echo"yep";
$deluser="DELETE FROM SubUsers WHERE SubUsers.id='$id'";
$delquery=mysqli_query($cxn,$deluser) or die (mysqli_error($cxn));
$delsuccess="Deletion successful";
}
>
<html>
<head><link rel="stylesheet" type="text/css" href="style.css" /></head>
<body>
<?PHP
include("cxn.inc");
//include("AdminNav.php");
$viewuser="SELECT SubUsers.Id,Username,Password,Name,Info FROM SubUsers,Branch WHERE SubUsers.id=Branch.id AND SubUsers.Userid='$_SESSION[UserId]'";
$runuser=mysqli_query($cxn,$viewuser) or die(mysqli_error($cxn));
$rows=array();
while($row=mysqli_fetch_assoc($runuser))
$rows[]=$row;
echo"<form action='$_SERVER[PHP_SELF]' name='DelUser' method='POST' >";
echo"<table border='1'>";
echo"<tr>";
echo"<td>";
echo"Username";
echo"</td>";
echo"<td>";
echo"Password";
echo"</td>";
echo"<td>";
echo"Branch Name";
echo"</td>";
echo"<td>";
echo"Branch Info";
echo"</td>";
echo"</tr>";
foreach($rows as $row)
{
$id=$row['Id'];
echo"$id";
echo"<tr>";
echo"<td>";
echo"$row[Username]";
echo"</td>";
echo"<td>";
echo"$row[Password]";
echo"</td>";
echo"<td>";
echo"$row[Name]";
echo"</td>";
echo"<td>";
echo"$row[Info]";
echo"</td>";
echo"<td>";
echo"<input type='hidden' name='id' value='$id' >";
echo"<input type='Submit' name='deluser' value='Delete' >";
echo"</td>";
echo"</tr>";
}
echo"<tr>";
echo"<td colspan='5'>";
if(isset($delsuccess))
{echo"$delsuccess";}
echo"</td>";
echo"</tr>";
echo"</table>";
echo"</form>";
?>
</body>
</html>
라인
에코 "$ ID가";
foreach 루프에서 각 행이 화면에 출력 될 때 각 행의 id를 올바르게 반환합니다. 삭제 버튼을 눌렀을 때
라인
print_r($_POST);
출력 결과를 제공 $ _POST, 모든 변수
Array ([id] => x [deluser] => Delete)
X 테이블의 마지막 행의 ID이다
(표 5 행,이 경우 예 X = 5)
질문 012,DELETE 버튼은 마지막 행의 ID 만 전달하고 행의 ID는 전달하지 않는 이유는 무엇입니까? 또한 삭제 버튼을 누를 때 어떻게해야합니까? 삭제 버튼 옆의 행이 삭제 되었습니까?
나는 지난 2 시간 동안 이것을보고 있었고 아직도 내가 틀린 곳을 알아낼 수 없다. delete buton을 누를 때 행이 삭제됨에 따라 코드가 분명히 작동하지만, 잘못된 행이 삭제되는 것입니다.
도움을 주시면 감사하겠습니다. 감사합니다
나머지는 html (버튼)입니다. –
@Gunr Jesra 무엇을 의미합니까? –