[英]Delete row from database using PHP (using a HTML table)
我正在表单上执行“删除”功能。 我不太开心,因为它不起作用! 我已经试过这段代码:
while($row = $result->fetch_assoc())
{
$ordernr = $row['ordernr'];
$klantnaam = $row['klantnaam'];
$productnaam = $row['productnaam'];
$productid = $row['productid'];
echo "<tr>";
echo "<td width='150px'>" . $ordernr . "</td>";
echo "<td width='150px'>" . $klantnaam . "</td>";
echo "<td width='300px'>" . $productnaam . "</td>";
echo "<td width='100px'>" . $productid . "</td>";
echo "<td align='center' width='50px'><input name='delete[$ordernr]' type='checkbox'></td>";
echo "</tr>";
}
echo "<tr>";
echo "<td><input type='submit' name='verwijderen' value='Verwijderen'/></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
$delete = $_POST['delete'];
if (isset($_POST['verwijderen'])) {
foreach($delete as $ordernr => $delete)
{
$ordernr = mysqli_real_escape_string($ordernr);
$query = mysqli_query("DELETE FROM overzicht WHERE ordernr= $ordernr");
}
}
你们知道我做错了吗?
提前致谢!
1)
echo "<td align='center' width='50px'><input name='delete[$ordernr]' type='checkbox'></td>";
转换为
echo "<td align='center' width='50px'><input name='delete' type='checkbox' value='$ordernr'></td>";
2)
foreach($delete as $ordernr => $delete)
do it:
foreach($delete as $ordernr => $del)
您正在覆盖$ _POST
您在这里重复使用变量时要进行迭代:
foreach($delete as $ordernr => $delete)
第二个$ delete会覆盖第一个$ delete的值,并在工作中抛出一个扳手。
我建议将$ delete的先前实例重命名为$ deleteList并执行以下操作:
foreach($ deleteList as $ ordernr => $ delete)
请记住,您的许多代码可以用更合适的不同方式完成。 在学习PHP的过程中,您会发现它们。
mysqli_query语法为
mysqli_query($con,"your query");
我会说您的输入复选框需要一个值。 喜欢
<input type="checkbox" name="delete[1]" value="1" />
另一方面,这样会更容易
<input type="checkbox" name="delete[]" value="$ordernr" />
然后你循环
foreach ($_POST["delete"] as $id) delete(id)
查询中的con变量...
$query = mysqli_query($con,"DELETE FROM overzicht WHERE ordernr= $ordernr");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.