简体   繁体   English

删除表中的行 - MySQL、PHP、HTML

[英]Delete row in table - MySQL, PHP, HTML

I have an HTML table displaying data from a MySQL database.我有一个 HTML 表,显示来自 MySQL 数据库的数据。 I want to add a "delete row" button, so that with a click I can delete a row from the database table (data linked to the Member's ID).我想添加一个“删除行”按钮,以便通过单击我可以从数据库表中删除一行(链接到会员 ID 的数据)。

I can see what the SQL should be doing, but I don't know how to implement it with PHP.我可以看到 SQL 应该做什么,但我不知道如何用 PHP 实现它。

I also have a search page where you can search for a member by inputting their first name and I want to add the same delete function to that search page too.我还有一个搜索页面,您可以在其中输入成员的名字来搜索他们,我也想向该搜索页面添加相同的删除功能。

But for now I want to get it working on an HTML table that shows all the data first!但现在我想让它在一个 HTML 表格上工作,首先显示所有数据!

Here is my code (minus the connecting and disconnecting from database and all that):这是我的代码(减去与数据库的连接和断开连接以及所有这些):

// Retrieve Member Details
$sql = "SELECT MemberID, FirstName, Surname, DOB, Address, County, 
               PostCode, MobileNo, Email FROM Members";
$result = mysql_query($sql, $connection);

//create table
echo "<table>";

// Loop through the data and then display chosen data
echo "<h2>Member Details</h2>";
echo "<tr><th>Member ID</th><th>First Name</th><th>Surname</th>
      <th>DOB</th><th>Address</th><th>County</th><th>Post Code</th>
      <th>Mobile Number</th><th>Email</th><tr>";
while($a_row = mysql_fetch_assoc($result))
    echo "<tr><td>" . $a_row['MemberID']
        . "</td><td>" . $a_row['FirstName']
        . "</td><td>" . $a_row['Surname']
        . "</td><td>" . $a_row['DOB']
        . "</td><td>" . $a_row['Address']
        . "</td><td>" . $a_row['County']
        . "</td><td>" . $a_row['PostCode']
        . "</td><td>" . $a_row['MobileNo']
        . "</td><td>" . $a_row['Email']
        . "</td><tr>";                                       
//close table
echo "</table>";

Code for Search page:搜索页面代码:

<?php
  // Connecting to Database Server
  $connection = mysql_connect("localhost", "1520621",

  // If connection cannot be made to Database Server
  if (!$connection)
    die("Cannot connect to Database");

  // Select the database
  mysql_select_db("db1520621", $connection)
    // If Database cannot be found
    or die("Cannot find Database");

  // SQL
  // Select all data from Members table where FirstName matches that which is inserted into searchName using POST  
  $sql ="SELECT * FROM Members";
  $sql.=" WHERE FirstName=\"".$_POST["searchName"]."\"";

  // Execute the query
  $queryResult=mysql_query($sql);

  //Check for errors and display following messages if there is
  if (mysql_error())
  {
    echo "Problem with Query<br>";
    echo "The following error message was returned from MySQL:<br>";
    echo mysql_error();
    exit;
  }

  //Create table
  echo "<table>";
  echo "<h2>Member Details</h2>";
  echo "<tr><th>First Name</th><th>Surname</th><th>DOB</th><th>Address</th><th>County</th><th>Post Code</th><th>Mobile Number</th><th>Email</th><tr>";

  // If no results found show message. If results found, loop if there is more than 1 result
  if (mysql_num_rows($queryResult)==0)
  {
    echo "No members with that name";
  }
  else
  {
    while ($dbRecord=mysql_fetch_array($queryResult))
    {
      echo "<tr><td>".$dbRecord["FirstName"]."</td><td>".$dbRecord["Surname"]."</td><td>".$dbRecord["DOB"]."</td><td>".$dbRecord["Address"]."</td><td>".$dbRecord["County"]."</td><td>".$dbRecord["PostCode"]."</td><td>".$dbRecord["MobileNo"]."</td><td>".$dbRecord["Email"]."</td></tr>";
    }
  }

  // Close connection to Database
  mysql_close($connection);
  ?>

You should be using PHP Data Objects ( http://php.net/manual/en/ref.pdo-mysql.php ) or MySQLi ( http://php.net/manual/en/book.mysqli.php ).您应该使用 PHP 数据对象 ( http://php.net/manual/en/ref.pdo-mysql.php ) 或 MySQLi ( http://php.net/manual/en/book.mysqli.php )。

The Ending <tr> table on the echo line is not closed ( </tr> ) which might be messing with the HTML output. echo 行上的 Ending <tr>表未关闭 ( </tr> ),这可能会干扰 HTML 输出。

SQL query for deleting:删除的 SQL 查询:

$query = sprintf("DELETE FROM Members WHERE MemberID = '%s'",
mysql_real_escape_string($member_id));

Here is the full code to delete row from database.这是从数据库中删除行的完整代码。 First you have to add delete link and pass member id to be deleted.首先,您必须添加删除链接并传递要删除的成员 ID。

// Check if delete button is clicked and delete respective row
if(isset($_GET['DeleteID']) AND !empty($_GET['DeleteID']))
    mysql_query("DELETE FROM Members where MemberID = '".$_GET['DeleteID']."'", $connection);

// Retrieve Member Details
$sql = "SELECT MemberID, FirstName, Surname, DOB, Address, County, PostCode, MobileNo, Email FROM Members";
$result = mysql_query($sql, $connection);

//create table
echo "<table>";

// Loop through the data and then display chosen data
echo "<h2>Member Details</h2>";
echo "<tr><th>Member ID</th><th>First Name</th><th>Surname</th><th>DOB</th><th>Address</th><th>County</th><th>Post Code</th><th>Mobile Number</th><th>Email</th><th>Delete</th><tr>";
while($a_row = mysql_fetch_assoc($result)){
    echo "<tr><td>" . $a_row['MemberID'] . "</td><td>" . $a_row['FirstName'] . "</td><td>" . $a_row['Surname'] . "</td><td>" . $a_row['DOB'] . "</td><td>" . $a_row['Address'] . "</td><td>" . $a_row['County'] . "</td><td>" . $a_row['PostCode'] . "</td><td>" . $a_row['MobileNo'] . "</td><td>" . $a_row['Email'] . "</td>";
    echo "<td><a href='?DeleteID=" . $a_row['MemberID'] . "' onclick=\"return confirm('Delete?')\">Delete</a></td></tr>";
}
//close table
echo "</table>";

Search page code搜索页面代码

<?php
    // Connecting to Database Server
    $connection = mysql_connect("localhost", "1520621", "w9p1n5");

    // If connection cannot be made to Database Server
    if (!$connection)
    die("Cannot connect to Database");

    // Select the database
    mysql_select_db("db1520621", $connection)
        // If Database cannot be found
        or die("Cannot find Database");

    // SQL
    if(isset($_GET['DeleteID']) AND !empty($_GET['DeleteID']))
    mysql_query("DELETE FROM Members where MemberID = '".$_GET['DeleteID']."'", $connection);

    // Select all data from Members table where FirstName matches that which is inserted into searchName using POST  
    $sql ="SELECT * FROM Members";
    $sql.=" WHERE FirstName=\"".$_REQUEST["searchName"]."\"";

    // Execute the query
    $queryResult=mysql_query($sql);

    //Check for errors and display following messages if there is
    if (mysql_error())
    {
        echo "Problem with Query<br>";
        echo "The following error message was returned from MySQL:<br>";
        echo mysql_error();
        exit;
    }

    //Create table
    echo "<table>";
    echo "<h2>Member Details</h2>";
    echo "<tr><th>First Name</th><th>Surname</th><th>DOB</th><th>Address</th><th>County</th><th>Post Code</th><th>Mobile Number</th><th>Email</th><tr>";

    // If no results found show message. If results found, loop if there is more than 1 result
    if (mysql_num_rows($queryResult)==0)
    {
        echo "No members with that name";
    }
    else
    {
        while ($dbRecord=mysql_fetch_array($queryResult))
        {
          echo "<tr><td>".$dbRecord["FirstName"]."</td><td>".$dbRecord["Surname"]."</td><td>".$dbRecord["DOB"]."</td><td>".$dbRecord["Address"]."</td><td>".$dbRecord["County"]."</td><td>".$dbRecord["PostCode"]."</td><td>".$dbRecord["MobileNo"]."</td><td>".$dbRecord["Email"]."</td>";
          echo "<td><a href='?DeleteID=" . $dbRecord['MemberID'] .(isset($_REQUEST['searchName'])?'&searchName='.$_REQUEST['searchName']:''). "' onclick=\"return confirm('Delete?')\">Delete</a></td></tr>";
        }
    }

    // Close connection to Database
    mysql_close($connection);
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM