2016-05-10 8 views
0

Bare mit mir, wie ich neuere PHP und mySQL-Datenbank-Programmierung bin.Ausführen von MySQL Delete on Button Klicken Sie

In meinem Code zeige ich eine Tabelle in meiner Datenbank namens Mitarbeiter in einer HTML-Tabelle und ich möchte eine Löschschaltfläche zu jeder Zeile in der HTML-Tabelle hinzufügen, die beim Klicken auf den Datensatz gelöscht wird.

Basierend andere Lösungen auf der Suche, mein Code wie folgt aussieht:

staff.php:

require_once('../connection.php'); 

      //delete row on button click 
      if(isset($_GET["del"])){ 
        $idc = $_GET["del"]; 
        if($VisitorManagement->query("DELETE FROM staff WHERE id=$idc")){ 
         header('Location: delete-thankyou.php'); 
        } else { 
         echo "Failed to delete staff member."; 
        }  
       } 

      $result = mysqli_query($VisitorManagement, "SELECT * FROM staff ORDER BY fullName"); 

      echo "<table id='staff'> 
      <thead> 
      <tr> 
      <th>Name</th> 
      <th>Email</th> 
      <th></th> 
      </tr> 
      </thead>"; 



      while($row = mysqli_fetch_array($result)) 
      { 
       echo "<tbody>"; 
       echo "<tr>"; 
       echo "<td>" . $row['fullName'] . "</td>"; 
       echo "<td>" . $row['email'] . "</td>"; 
       echo "<td><a class='button alert' href='staff.php?del=".$row["idc"]."'>Delete</a></td>"; 
       echo "</tr>"; 
      } 
     echo "</tbody>"; 
     echo "</table>"; 

connection.php:

$hostname_VisitorManagement = "localhost"; 
$database_VisitorManagement = "visitor-management"; 
$username_VisitorManagement = "***"; 
$password_VisitorManagement = "***"; 
$VisitorManagement = mysqli_connect($hostname_VisitorManagement, $username_VisitorManagement, $password_VisitorManagement, $database_VisitorManagement); 

if (mysqli_connect_errno()) { 
printf("Connect failed: %s\n", mysqli_connect_error()); 
exit(); 
} 

date_default_timezone_set('America/New_York'); 

Leider, wenn ich auf den Klick gehen Mit einer der Tasten kann der Datensatz nicht gelöscht werden und die in der staff.php vordefinierte Fehlermeldung wird angezeigt. Fehle ich etwas, damit das funktioniert?

+0

Sie sollten die Fehlermeldung schreiben Sie bekommen es etwas einfacher für uns zu machen. –

+0

@ ExoSkeleton321 Es zeigt nur die Fehlermeldung "Fehler beim Löschen des Mitarbeiters" Ich habe in meinem staff.php Code –

+0

vordefiniert Ich habe den Code ausgeführt und es funktioniert auf meinen Computern. –

Antwort

0

Ich konnte es beheben, indem Sie alle Instanzen von IDC in ID ändern.

New Code:

require_once('../connection.php'); 

     //delete row on button click 
     if(isset($_GET["del"])){ 
       $id = $_GET["del"]; 
       if($VisitorManagement->query("DELETE FROM staff WHERE id=$id")){ 
        header('Location: delete-thankyou.php'); 
       } else { 
        echo "Failed to delete staff member."; 
       }  
      } 

     $result = mysqli_query($VisitorManagement, "SELECT * FROM staff ORDER BY fullName"); 

     echo "<table id='staff'> 
     <thead> 
     <tr> 
     <th>Name</th> 
     <th>Email</th> 
     <th></th> 
     </tr> 
     </thead>"; 



     while($row = mysqli_fetch_array($result)) 
     { 
      echo "<tbody>"; 
      echo "<tr>"; 
      echo "<td>" . $row['fullName'] . "</td>"; 
      echo "<td>" . $row['email'] . "</td>"; 
      echo "<td><a class='button alert' href='staff.php?del=".$row["id"]."'>Delete</a></td>"; 
      echo "</tr>"; 
     } 
    echo "</tbody>"; 
    echo "</table>"; 
+0

Einige Sicherheitsempfehlungen: Verwenden Sie parametrisierte Abfragen zum Schutz vor SQL-Injection. Wenn Sie eine GET-Anfrage verwenden, um einen Datensatz zu löschen, werden Browser-Prefetching- und Browser-basierte Link-Checker alle sichtbaren Datensätze löschen. Wenn Sie POST zum Löschen verwenden, vergessen Sie nicht den CSRF-Schutz. – jdog