【问题标题】:PHP MySQL DELETE row from html table with link button带有链接按钮的 html 表中的 PHP MySQL DELETE 行
【发布时间】:2016-03-18 22:53:00
【问题描述】:

我已经看这个有一段时间了,我正在做的只是用 mysql 学习 PHP,之前没有任何编程经验,所以请善待。我需要从表中删除整行。该表位于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>";?>

【问题讨论】:

  • $_GET['ID'] 必须是 $_GET['id']
  • 嗨,保罗,感谢您的回答。它不再将我重定向到空白页面,这意味着标题现在可以工作,但它也不会删除该行。 :-/
  • 您是否使用存在的 ID 进行测试?含义:如果您已经删除了 ID 为 4 的行,您是否使用 ID 4 进行测试?
  • 你还需要避免sql注入。 $courseID = mysqli_real_escape_string($_GET['id']);
  • timgavin,你错过了问题的细节。我只是在 SQL 命令行中手动插入了一个数字,以检查查询是否有问题。我需要通过使代码自动从 URL 读取 ID 来使其与 $_GET 一起自动工作。正如我已经提到的,URL 重定向可以正常工作。

标签: php html mysql html-table


【解决方案1】:

connect.php

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

删除.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>

【讨论】:

    猜你喜欢
    • 2012-05-24
    • 2013-03-02
    • 2012-07-27
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2017-09-23
    相关资源
    最近更新 更多