Heim  >  Artikel  >  Datenbank  >  Wie implementiert man eine Schaltfläche „Löschen“ in einem PHP-Formular, um Datensätze aus einer MySQL-Tabelle zu entfernen?

Wie implementiert man eine Schaltfläche „Löschen“ in einem PHP-Formular, um Datensätze aus einer MySQL-Tabelle zu entfernen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 21:30:30730Durchsuche

How to Implement a Delete Button in a PHP Form to Remove Records from a MySQL Table?

So integrieren Sie eine Löschschaltfläche in ein PHP-Formular, um Datensätze aus einer MySQL-Tabelle zu entfernen

Problem:

Eine Anfrage zum Hinzufügen einer „Löschen“-Option zu einer HTML-Tabelle, die mit einer MySQL-Tabelle gefüllt ist, hat sich als erfolglos erwiesen. Das Ziel besteht darin, einen funktionalen Löschlink zu erstellen, der eine Formularübermittlung auslöst und die entsprechende Zeile aus der Datenbank entfernt.

Code-Snapshot:

results.php :

<code class="php">// Fetch data from the database
$contacts = mysql_query("SELECT * FROM contacts ORDER BY ID ASC") or die(mysql_error());

// If results exist, display the table
if (mysql_num_rows($contacts) > 0) {
    // Table markup
    echo '<table id="contact-list">';

    // Table head
    echo '<thead><tr><th>Name</th><th>Email</th><th>Telephone</th><th>Address</th><th>Delete</th></tr></thead>';

    // Table body
    while ($contact = mysql_fetch_array($contacts)) {
        echo '<tr>';
        echo '<td>' . $contact['name'] . '</td>';
        echo '<td>' . $contact['email'] . '</td>';
        echo '<td>' . $contact['telephone'] . '</td>';
        echo '<td>' . $contact['address'] . '</td>';

        // Delete form
        echo '<td><form action="delete.php" method="post">';
        echo '<input type="hidden" name="name" value="">';
        echo '<input type="submit" name="submit" value="Delete">';
        echo '</form></td>';

        echo '</tr>';
    }

    // Table foot
    echo '</table>';
}</code>

delete.php:

<code class="php">// Define the deletion query
$query = "DELETE FROM contacts WHERE name={$_POST['name']} LIMIT 1";

// Execute the query
mysql_query($query);

// Display a success or failure message based on the number of affected rows
if (mysql_affected_rows() == 1) {
    echo '<strong>Contact Has Been Deleted</strong><br /><br />';
} else {
    echo '<strong>Deletion Failed</strong><br /><br />';
}</code>

Lösung:

Das Problem liegt in Übergabe des Primärschlüsselwerts (in diesem Fall des Namens) an das Skript delete.php. Um dies zu beheben, muss der Löschlink den Namenswert entweder über ein ausgeblendetes Feld oder als URL-Parameter enthalten.

Aktualisierter Code:

<code class="php">// Within the table body loop in results.php

echo '<td><form action="delete.php?name=' . $contact['name'] . '" method="post">';</code>

Das obige ist der detaillierte Inhalt vonWie implementiert man eine Schaltfläche „Löschen“ in einem PHP-Formular, um Datensätze aus einer MySQL-Tabelle zu entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn