2017-01-04 2 views
0

Ich weiß, das wurde oft gefragt und ich habe viele Antworten gelesen, aber ich kann das nicht funktionieren. Ich versuche, eine Schaltfläche (PHP/HTML) zu erstellen, um alle Datensätze aus einer Tabelle in MySQL zu löschen. Ich habe eine Tabelle in meiner Datenbank namens tvdbase. Ich möchte alle Datensätze aus dieser Tabelle löschen, aber die Struktur beibehalten. Es wird zu keinem Zeitpunkt mehr als 10 Zeilen in der Tabelle geben.Löschen Sie alle Zeilen aus der MySQL-Tabelle mit PHP

Dies ist mein Code (ich alle unnötigen HTML-Code für dieses Beispiel entfernt)

<?php include('includes/database.php'); ?> 
<?php 
    error_reporting(E_ALL); 
    ini_set('display_errors',1); 

    if($_POST){ 
     //Delete records 
     $query = "DELETE FROM tvdbase"; 
     $mysqli->query($query) or die($mysqli->error.__LINE__); 
     // Also tried replacing the 2 lines above with: 
     // mysqli_query("DELETE FROM tvdbase"); 
     $msg = "Entries Deleted Successfully"; 
     header('Location:home.php?msg='.urlencode($msg).''); 
     exit; 
    } 
?> 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    </head> 
    <body> 
<!-- FORM START --> 
     <form role="form" method="post" action="delete_all.php">   
     <!-- BUTTONS START --> 
      <a class="btn btn-default" href="home.php" role="button">Cancel</a> 
      <input type="submit" class="btn btn-danger" value="Delete" /> 
     <!-- BUTTONS END -->   
     </form> 
<!-- FORM END -->  
    </body> 
</html> 

Wenn ich auf die Schaltfläche Löschen klicken wird neu geladen nur die gleiche Seite und die Daten sind nach wie vor in der Tabelle. Ich bin noch neu in PHP und MySQL, also bitte vergib die Fehler. Kann jemand etwas Licht in die Richtung werfen, wo ich falsch liege?

Ich habe diese Arbeit für einzelne Zeilen, in denen ich eine Schaltfläche Löschen in einer HTML-Tabelle mit dem folgenden Code auf jede Zeile habe:

<?php include('includes/database.php'); ?> 
<?php 
    //Variable 
    $id = $_GET['id']; 
    //Create room select query 
    $query ="SELECT * FROM tvdbase 
      WHERE id = $id"; 
    $result = $mysqli->query($query) or die($mysqli->error.__LINE__); 
    if($result = $mysqli->query($query)){ 
     //Fetch object array 
     while($row = $result->fetch_assoc()) { 
      $tvDate = $row['tvDate']; 
      $tvCourse = $row['tvCourse']; 
      $tvRoom = $row['tvRoom']; 
     } 
     $result->close(); 
    } 
?> 
<?php 

    if($_POST){ 
     //ID Variable 
     $id = $_GET['id']; 
     //Delete room 
     $query = "DELETE FROM tvdbase WHERE id = $id"; 
     $mysqli->query($query) or die($mysqli->error.__LINE__); 
     // $msg="Entry Deleted"; 
     $msg = "<div class='alert alert-danger'> 
       Entry Deleted Successfully 
       </div>"; 
     header('Location:home.php?msg='.urlencode($msg).''); 
     exit; 
    } 
?> 

The form action is delete_room.php?id=<?php echo $id; ?> 
+1

Hat diese Tabelle eine Beziehung? –

+0

Möchten Sie DELETE oder TRUNCATE? – Strawberry

+0

Sie suchen nach einem HTTP-GET-Argument in einer HTTP-POST-Anforderung? – arkascha

Antwort

-1

versuchen, etwas in Ihrer IF-Anweisung zu drucken, wenn der Code zu überprüfen durchlaufen.

Wenn nicht, versuchen Sie in Ihrem Formular hinzufügen:

<input type='hidden' name='flag' value='pass'> 

Dann wird Ihr IF auf diese Weise ändert:

if ($_POST['flag'] == "pass") { 

} 
+0

Dank @Soprano das half. Mein Problem war mit der Form. – Alex

Verwandte Themen