Php 从数据库中删除记录,它表示找不到请求URL
我对PHP非常陌生,我正在尝试用PHP制作一个基本的CRUD。我可以添加记录并将其显示在一个表中,在同一行上有两个操作按钮。但是,我无法从数据库中删除记录并更新表(删除数据)。当我将鼠标悬停在“删除”按钮上时,似乎正在解析变量,但当我单击“删除”按钮时,它会显示“未找到URL”。我在下面包含了一些代码。提前谢谢 显示数据库中所有记录的表格:Php 从数据库中删除记录,它表示找不到请求URL,php,html,crud,Php,Html,Crud,我对PHP非常陌生,我正在尝试用PHP制作一个基本的CRUD。我可以添加记录并将其显示在一个表中,在同一行上有两个操作按钮。但是,我无法从数据库中删除记录并更新表(删除数据)。当我将鼠标悬停在“删除”按钮上时,似乎正在解析变量,但当我单击“删除”按钮时,它会显示“未找到URL”。我在下面包含了一些代码。提前谢谢 显示数据库中所有记录的表格: <div class="form-group"> <table class='table'>
<div class="form-group">
<table class='table'>
<thead>
<tr>
<th>First name</th>
<th>Last name</th>
<th>Gender</th>
<th>Location</th>
<th colspan="2">Action</th>
</tr>
</thead>
<?php
$result = $conn->query('SELECT * FROM tb_user ORDER BY id DESC') or die($conn->error);
while($row = $result->fetch_object()):?>
<tr>
<td><?php echo $row->first_name; ?> </td>
<td><?php echo $row->last_name; ?></td>
<td><?php echo $row->gender; ?></td>
<td><?php echo $row->place; ?></td>
<td colspan="2">
<a href="index.php?edit<?php echo $row->id; ?>" class="btn btn-info">Edit</a>
<a href="process.php?delete=<?php echo $row->id; ?>" class="btn btn-danger">Delete</a>
</td>
</tr>
<?php endwhile; ?>
</table>
</div>
我能够使用正确的URL访问空白页面,而不是出现“URL未找到”错误
问题是我的
process.php
文件与我的index.php
文件不在同一目录中。刷新页面时,删除的行是否消失,是index.php中的删除代码还是process.php中的删除代码,如果页面刷新后消失,这意味着代码在index.php中运行,并且代码不会刷新页面,如果process.php中的代码确保页面在同一个目录中,当您说(当我单击delete按钮时,它说URL not found)这意味着代码正在工作,因为它删除了行,但没有刷新表
标题(“Location:index.php”)代码>将不起作用。在这种情况下,您不能使用PHP头函数重定向,您应该使用javascript重定向函数,因为头已经发送到缓冲区。您可以在启用所有日志后使用ini\u set
功能进行确认
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
编辑按钮指向
index.php
,删除按钮指向process.php
,对吗?是的,我就是这样做的,你可能不会这么做。这是解决这个问题的正确方法吗?我想从数据库中删除一条记录。我只是想知道这是否是一个bug。但如果两个脚本都存在,那么应该可以使用。你检查文件权限了吗?这两个文件有相同的吗?我还尝试使用创建一个按钮,并尝试使用if(isset['btnDelete'])来实现。但是,它没有任何作用,我尝试在按下时回显一些字符串,但仍然没有任何结果。将var\u dump($\u GET)
添加到你的process.php中,并检查它是否可以看到数据。结果是“process.php”与index.php不在同一目录中。现在,当我按下Delete键时,我可以进入一个空白页面,页面上有正确的“id”。但是,“应该被删除”记录仍然存在。基本上,它无法删除所选记录。我很高兴我的回答帮助了您,因为当您点击删除按钮并传输到pros.php时,删除代码意味着(header(“location:index.php”);)没有执行,sql语句检查tb名称有一些错误。如果您看到我的答案,请将其作为正确答案^_^
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);