2017-08-01 21 views
-2

i verwendet, um die crud Methode löschen und es funktioniert für mich, aber wenn ich es mit einer anderen Datenbank und Tabelle versuchte es immer wieder sagen: „Invalid argument für foreach geliefert()“crud Arbeits löscht nicht mehr

dies ist meine „vacature-verwijderen.php“ wo sollten Sie in der Lage sein, es zu löschen

  <div> 
      <table id="tabel"> 
       <thead> 
       <tr> 
        <th>Functie</th> 
        <th>Omschrijving</th> 
        <th>Salaris</th> 
       </tr> 
       </thead> 
       <tbody> 
       <?php 
       include 'database.php'; 
       $pdo = Database::connect(); 
       $sql = 'SELECT * FROM vacature ORDER BY id DESC'; 
       foreach ($pdo->query($sql) as $row) { 
         echo '<tr>'; 
         echo '<td>'. $row['functie'] . '</td>'; 
         echo '<td>'. $row['omschrijving'] . '</td>'; 
         echo '<td>'. $row['salaris'] . '</td>'; 
         echo '<td width=250>'; 
         echo '<a class="button " href="update.php?id='.$row['id'].'">Update</a>'; 
         echo ' '; 
         echo '<a class="button" href="delete.php?id='.$row['id'].'">Delete</a>'; 
         echo '</td>'; 
         echo '</tr>'; 
         } 
       Database::disconnect(); 
       ?> 
       </tbody> 
     </table> 
    </div> 
</div> 

und dann, wenn Sie auf löschen, die Sie auf „delete.php“ gehen, die wie diese

<?php 
require 'database.php'; 
$id = 0; 

if (!empty($_GET['id'])) { 
    $id = $_REQUEST['id']; 
} 

if (!empty($_POST)) { 
    $id = $_POST['id']; 

    $pdo = Database::connect(); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql = "DELETE FROM vacature WHERE id = ?"; 
    $q = $pdo->prepare($sql); 
    $q->execute(array($id)); 
    Database::disconnect(); 
    header("Location: vacature-verwijderen.php"); 

} 
?> 

i don sieht‘ t wissen, was falsch ist, da es an die Arbeit verwendet wird, auch meine Datenbanktabelle wie diese

screen

+2

Bitte suchen Sie nach Fehlermeldungen. Aus Ihrem Screenshot: Sie möchten mit * id * löschen. Aber es gibt keine Spalte mit Namen * ID * – BenRoob

+0

@BenRoob mein Gott, es tut mir so leid, ich konnte buchstäblich nicht herausfinden, was es war, aber das war's. ich danke dir sehr – Melissa

Antwort

0
foreach ($pdo->query($sql) as $row) { 

sieht Das ist, was falsch ist. $pdo->query($sql) gibt bereits Ihre $row zurück.

eine Weile stattdessen verwenden, so dass es die Abfrage zu tun und gibt Ihnen die neue Zeile, solange es Daten zu holen:

while ($row = $pdo->query($sql)) { 

auch: Sie doesn

$sql = "DELETE FROM vacature WHERE id = ?"; 

Die Tabelle zur Verfügung gestellt Es enthält kein Feld mit dem Namen ID, obwohl es einen Namen vacature_id gibt. Vielleicht möchten Sie dies auch ändern:

$sql = "DELETE FROM vacature WHERE vacature_id = ?"; 

Zögern Sie nicht, wieder zu kommen, wenn es Ihr Problem nicht löst.