使用链接按钮从HTML表格中删除PHP MySQL行

3
我已经花了一段时间学习 PHP 和 MySQL,之前没有任何编程经验,请多多关照。我需要从表格中删除一整行。该表格位于 list.php 中,并且有一个删除按钮,可以重定向到 delete.php。但是它只会将我重定向到一个空白页面,URL 上带有类似于 "delete.php?id=4" 的内容,取决于行 ID,这似乎是正确的。
以下是 connect.php
<?php 
$server = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "school";

$db_conn = mysqli_connect($server, $db_user, $db_pass, $db_name);

$connect_error = 'Sorry, we are experiencing connection problems';

mysql_connect('localhost', 'root', '') or die($connect_error);
mysql_select_db('school') or die($connect_error);

?>

以下是 delete.php 的代码:

<?php 
if(isset($_GET['ID'])){
    $courseID = $_GET['ID'];
    $sql_delete = "DELETE FROM Courses WHERE ID = $courseID";       
    print ($sql_delete);        
        $result = mysqli_query($db_conn,$sql_delete);
    if($result) {
        echo "Congratulations. You have deleted this course succesfully.";
        header('location:list.php');
    } else {
        echo "Error";
    error_reporting(E_ALL ^ E_DEPRECATED);
    }

}
?>

请注意 "print ($sql_delete);",它也不打印任何内容。我能想到的只有可能是我使用了$_GET请求ID的方式有问题,但是我还无法理解。当我运行时,问题依旧存在。
"DELETE FROM Courses WHERE ID = 4;"
在xampp的mysql模块中,它可以正常工作。嗯...好吧。
好的,让我补充一下: 这实际上是我的删除按钮在list.php中,它基于课程id根据表格行号给我一个URL。
<?php echo "<td><a href=\"delete.php?id=$row[ID]\">Delete</a>";?>

1
$_GET['ID'] 必须改为 $_GET['id'] - Paul Spiegel
嘿,保罗,谢谢你的回答。它不再将我重定向到空白页面,这意味着头现在起作用了,但它也没有删除行。 :-/ - J. Doe
您还需要避免 SQL 注入。$courseID = mysqli_real_escape_string($_GET['id']); - timgavin
$result = mysqli_query(...); 行后面写入 echo mysqli_affected_rows($db_conn) . "<br>" . $sql_delete; exit;,然后看看会发生什么。 - Paul Spiegel
嘿,保罗,它说:“恭喜。”另外,我尝试在 $courseID = $_GET['id']; 后立即输出 $courseID,但它没有输出,也许这有助于识别问题? - J. Doe
显示剩余11条评论
1个回答

0

connect.php

    $server = "localhost";
    $db_user = "root";
    $db_pass = "";
    $db_name = "school";
    $db_conn = mysqli_connect($server, $db_user, $db_pass, $db_name);

delete.php

if(isset($_GET['ID'])){
  $courseID = $_GET['ID'];
  $sql_delete = "DELETE FROM Courses WHERE ID = $courseID";        
  $result = mysqli_query($db_conn,$sql_delete);
  if(mysqli_affected_rows($db_conn)>0) {
      header('location:list.php?result=success');
  } else {
     header('location:list.php?result=fail');
  }
 }

list.php(在哪里可以找到删除按钮)

<?php
if(isset($_GET['result'))
{
if($_GET['result']=='success')
{

    echo "Congratulations. You have deleted this course succesfully.";
}
else{
     echo "error";
  }
}
?>
(Delete button)
<a href="delete.php?ID=5" >Delete</a>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接