Home >Database >Mysql Tutorial >How to Fix PHP Checkbox Array and Database Connection Issues When Deleting Multiple Database Rows?

How to Fix PHP Checkbox Array and Database Connection Issues When Deleting Multiple Database Rows?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 08:53:13307browse

How to Fix PHP Checkbox Array and Database Connection Issues When Deleting Multiple Database Rows?

Using PHP to Delete Multiple Rows Based on Checkbox Selection

When working with a relational database, it's often necessary to delete multiple rows simultaneously. To accomplish this, you can utilize checkboxes in a form to select the rows to be removed.

In this guide, we will address a common issue faced when deleting multiple rows using PHP and checkboxes. We'll provide a concise overview of the problem and its solution, based on the information provided in the given problem statement, without repeating the title "Delete multiple rows by selecting checkboxes using PHP".

The Issue

You've created a PHP file that allows users to select and delete specific rows from a MySQL database table. However, despite the checkboxes being marked and the form submission, the rows remain intact. This suggests that the issue stems from the PHP code.

The Solution

Let's delve into the PHP code provided and identify the potential error:

  1. Checkbox Array: The PHP script initially treated "checkbox" as a single element. Instead, it should be treated as an array to correctly capture the selected checkboxes. To rectify this, replace the following code:
<input name="checkbox" type="checkbox" value="
                    <?php echo $row['link_id']; ?>">

with:

<input name="checkbox[]" type="checkbox" value="
                    <?php echo $row['link_id']; ?>">
  1. Query Execution: The PHP code did not pass the database connection to the query that deletes the rows. This omission resulted in the query failing to execute. To correct this, add the following line before executing the query:
$result = mysqli_query($dbc, $sql);

where "$dbc" represents the database connection.

Implementation

With these adjustments, your PHP script should now correctly delete the selected rows when the "Delete" button is clicked. Here's the updated PHP code that handles this:

if (isset($_POST['delete'])) {
    $checkbox = $_POST['checkbox'];

    for ($i = 0; $i < count($checkbox); $i++) {
        $del_id = $checkbox[$i];
        $sql = "DELETE FROM links WHERE link_id='$del_id'";
        $result = mysqli_query($dbc, $sql);
    }

    if ($result) {
        echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
    }
}

By following these steps, you can successfully delete multiple rows from your database table based on user selection using checkboxes and PHP.

The above is the detailed content of How to Fix PHP Checkbox Array and Database Connection Issues When Deleting Multiple Database Rows?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn