我使用了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");
}
?>
我不知道什么是错的,因为它曾经工作,我的数据库表看起来像这样
答案 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 = ?";
如果它没有解决你的问题,请不要犹豫。