删除行取决于3个值

时间:2018-04-10 18:26:36

标签: php html

我有删除行的问题。问题是我想要删除具有相同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 
        }
    }
    ?>

这些是我收到的错误

2 个答案:

答案 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查询中的任何内容进行比较。