crud删除不再工作了

时间:2017-08-01 15:19:46

标签: php mysql sql

我使用了crud delete方法,它适用于我,但当我尝试使用不同的数据库和表时,它一直说“为foreach()提供了无效的参数”

这是我的“vacature-verwijderen.php”你应该可以删除它

            <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>

然后当你点击删除时,你会转到“delete.php”,看起来像这样

<?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");

}
?>

我不知道什么是错的,因为它曾经工作,我的数据库表看起来像这样

screen

1 个答案:

答案 0 :(得分:0)

// See transpiled SCSS in CodePen

$order: 
  1 2 3 4 5 6 7 8 9 10 20 
  19 18 17 16 15 14 13 12 11 
  21 22 23 24 25 26 27 28 29 30 
  40 39 38 37 36 35 34 33 32 31 
  41 42 43 44 45 46 47 48 49 50 
  60 59 58 57 56 55 54 53 52 51 
  61 62 63 63 65 66 67 68 69 70 
  80 79 78 77 76 75 74 73 72 71 
  81 82 83 84 85 86 87 88 89 90 
  100 99 98 97 96 95 94 93 92 91;
  
li {
  @for $i from 1 through 100 {
    &:nth-child(#{$i}) {
      // order in a snake-like way illustrated by the change in background color
      order: nth($order, $i);
    }
  }
}

那是什么问题。 foreach ($pdo->query($sql) as $row) { 已经返回$pdo->query($sql)

使用while而不是它执行查询并返回新行,只要有要获取的数据:

$row

另外:

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

您提供的表格不包含任何名为 id 的字段,但有一个名为 vacature_id 的字段。您可能也希望改变它:

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

如果它没有解决你的问题,请不要犹豫。