我有删除行的问题。问题是我想要删除具有相同ID但多行的行。我想确保我不仅可以删除一行ID,还可以删除一周,一天和一行以删除特定行。
这是我点击删除按钮时的代码
<td><a onclick="return confirm('Are you sure you want to cancel Shift?')" href="remove.php? delete=<?php echo $row['employeeID'].'week='&$row['week'].'day='&$row['day'].'shift='&$row['shift']?>" class="btn del">Cancel</a></td>
这是删除我的行的代码
<?php
include_once'../dbconfig/DBConn.php';
$con = DBConn::getConnection();
if(isset($_GET['delete'])) {
$delete= $_GET['delete'];
$week = $_GET['week'];
$day = $_GET['day'];
$shift = $_GET['shift'];
$result = $con->query("DELETE FROM empavailability WHERE employeeID =
$delete AND week= $week AND day=$day AND $shift");
if($result){
//header('location: EmpView.php');
}else{
?>
<script>
alert("Failed to cancel Shift");
window.location.href='EmpView.php';
</script>
<?php
}
}
?>
答案 0 :(得分:1)
您的网址中的&
个字符位置错误。
<td><a onclick="return confirm('Are you sure you want to cancel Shift?')" href="remove.php?delete=<?php echo $row['employeeID'].'&week='.$row['week'].'&day='.$row['day'].'&shift='.$row['shift']?>" class="btn del">Cancel</a></td>
此外,在您的SQL中,您缺少一个列名,它应该是AND shift = $shift
。
您还应该使用参数化查询而不是替换变量,以防止SQL注入。
答案 1 :(得分:0)
查看您的错误消息。
您的$_GET
阵列没有按键&#39;周&#39;和&#39; day&#39;因为你放置了&符号。
应该是:
<td><a onclick="return confirm('Are you sure you want to cancel Shift?')" href="remove.php? delete=<?php echo $row['employeeID'].'&week='$row['week'].'&day='$row['day'].'&shift='$row['shift']?>" class="btn del">Cancel</a></td>
或者更一般地说:
file.php?key1=value1&key2=value2
不相关,您没有使用参数绑定,这是您真正应该做的,而且您并未将$shift
与SQL查询中的任何内容进行比较。