我写了一些代码来回应我的表:
<?php while($product = mysqli_fetch_assoc($result)) : ?>
<tr>
<td><?php echo $product['id']; ?></td>
<td><?php echo $product['customer_id']; ?></td>
<td><?php echo $product['total_price']; ?></td>
<td><?php echo $product['created']; ?></td>
<td><?php echo $product['modified']; ?></td>
<td><a href="delete.php"><span class="glyphicon glyphicon-remove"></span></a></td>
</tr>
<?php endwhile?>
为特定的表行删除创建了最后一个td元素。但是我不知道如何获得该行ID。这是我的delete.php文件:
<?php
require_once 'core/init.php';
$id = $_GET['id'];
mysqli_query($db,"DELETE FROM orders WHERE id='".$id."'");
mysqli_close($db);
header("Location: details-modal-orders.php");
?>
我认为我应该改变这一行:
<td><a href="delete.php"><span class="glyphicon glyphicon-remove"></span></a></td>
在delete.php之后应该有一些id识别器或其他东西。请帮忙。我也不知道如何创建它,因为它在while循环中。我担心某些事情不会有效。
答案 0 :(得分:2)
通过href
属性
href="delete.php?id=<?php echo $product['id']; ?>">
在执行此操作时也不要忘记使用预准备语句,因为将$_GET
或$_POST
或$_REQUEST
参数直接传递到查询中是完全不安全的
使用准备好的陈述
$id = (int) $_GET['id']; //cast to integer
$stmt = mysqli_stmt_prepare($db,"DELETE FROM orders WHERE id=?"); //prepare the statement returns true/fasle
mysqli_stmt_bind_param($stmt, "i", $id); //bind placeholder to variable
mysqli_stmt_execute($stmt); //execute (returns true/false)
答案 1 :(得分:-1)
严重吗?
<td><a href="delete.php?id=<?php echo $product['id']; ?>">
<span class="glyphicon glyphicon-remove"></span>
</a></td>