2016-12-16 21 views
0

Ich machte von in PHP. Wenn ich zum Beispiel eine Klasse auswähle, wähle ich die Klasse9 aus und zeigt mir die Tabelle der Klasse9 an. Ich habe auch eine Zeile in die Tabelle eingefügt, die die Schaltfläche zum Löschen enthält, um die entsprechende Zeile zu löschen. Jetzt möchte ich eine Reihe kaufen, indem ich auf den Knopf klicke, der in der Reihe ist. wie kann ich das machen?
Zuerst wähle ich eine Klasse aus dieser Option wie im Bild unten; The image from which we select the class
Und dann wird die entsprechende Tabelle angezeigt.
This is the image. When I click on the button, the corresponding row should be deleted.Wie lösche ich eine Zeile in PHP?

<?php 
include "connection.php"; 
?> 

<!doctype html> 
<html> 
<head> 
<title>KDR</title> 
</head> 

<body> 


    <table border="2px" width="50%" height="auto"> 
    <tr> 
     <th>No</th> 
     <th>Name</th> 
     <th>F/Name</th> 
     <th>Age</th> 
     <th>Delete</th> 
    </tr> 
    <?php 
    $table = $_POST['formCountry']; 
    $sql = "SELECT * FROM $table"; 
    $result = $conn->query($sql); 
    while($row = $result->fetch_assoc()) 
    { 
     echo "<tr>"; 
     echo "<td>" . $row['id'] . "</td>"; 
     echo "<td>" . $row['name'] . "</td>"; 
     echo "<td>" . $row['fname'] . "</td>"; 
     echo "<td>" . $row['age'] . "</td>"; 
     echo "<td><form method='POST' ><input type='submit' name='deletestudent' value='Delete'/></form></td>"; 
     echo "</tr>"; 
    } 
    ?> 
</table> 

</body> 
+1

In Ihrem Formular Schaltfläche sollten Sie Aktion und die ID der Reihe .. zum Beispiel geben '

' und in 'delete_row.php' ausführen löscht . –

+0

Ok, Welcher Code sollte dann in das Formular delete_row.php geschrieben werden? –

+0

In 'delete_row.php' sollten Sie die MySQL-Abfrage schreiben, die die Zeile basierend auf der ID, die Sie mit dem Formular übergeben haben, löscht. – icecub

Antwort

2

Etwas Ähnliches. Vielleicht muss es etwas angepasst werden.

Ihre Tisch-Taste:

echo "<td><form method='POST' action="delete_row.php" ><input type='submit' name='deletestudent' value="'.$row['id'].'"/></form></td>"; 

In PHP (delete_row.php) sollten Sie den folgenden

<?php 
    $servername = "localhost"; 
    $username = "username"; 
    $password = "password"; 
    $dbname = "myDB"; 

    // Create connection 
    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    // Check connection 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 

    if(isset($_POST['id']) and is_numeric($_POST['id'])) 
    { 

     $delete = $_POST['id'] 

     $stmt = $conn->prepare("DELETE FROM YOURTABLENAME WHERE id = ?"); 
     $stmt->bind_param('i', $delete); 
     $stmt->execute(); 
     $stmt->close();  
    } 

Hinweis tun: Nicht getestet und ich bin mit mysqli_* hier.

Update: Wie @icecub vorgeschlagen, dass Sie auch versteckte Feld können Sie die ID

echo "<td> 
      <form method='POST' action='delete_row.php' > 
       <input type='hidden' name='deletestudent' value='".$row['id']."'/> 
       <input type='submit' value='Delete'/> 
      </form> 
    </td>"; 
+1

Ich würde vorschlagen, dem Formular ein verstecktes Eingabefeld hinzuzufügen, anstatt die ID in den Wert der Schaltfläche zu schreiben. Der Wert erscheint auch auf der Schaltfläche. Kann ein bisschen seltsam aussehen. – icecub

+0

Ja, es ist auch eine Option. –

+0

Wie auch immer, +1 von mir für die richtige Programmierung mit vorbereiteten Anweisungen. Es ist ein willkommener Anblick zwischen allen 'mysql_ * '- Posts :) – icecub

0

Dies ist, wie nicht zu tun, finden Sie in den Kommentaren unten zu bekommen, wichtig!

Sollte die aktuelle ID des Elements senden, wenn Sie also auf die Schaltfläche klicken, erhalten Sie die Element-ID von $ _GET ['id'];

<td><a href='?id=".$row['id']."'>delete</a></td> 

if (isset($_GET['id'])) { 
    //Throw query DELETE ... WHERE id = $_GET['id']; 
} 
+0

Natürlich. Da eine Seite, die einfach Datenbankzeilen basierend auf einem GET-Wert löscht, kein großes Sicherheitsrisiko oder irgendetwas ist. – icecub

+0

Ja, aber Sie können etwas Kontrolle mit $ _SESSION –

+0

ich meine, wenn isset eine genaue Sitzung für einen Benutzer, diesen Benutzer kann die Anfrage abschließen GET –

Verwandte Themen