Php 从HTML页面删除MySQL条目
我正试图为我的网站设计一个控制页面,允许管理员删除我学校使用3D打印机的请求。该页面显示来自MySQL数据库的时间表查询,并在每个条目旁边放置一个删除按钮。但是,我想将每个条目中的信息链接到其各自的删除按钮,但不知道如何做到这一点。您可以在这里看到页面本身:这是我用来显示信息的代码Php 从HTML页面删除MySQL条目,php,html,mysql,database,Php,Html,Mysql,Database,我正试图为我的网站设计一个控制页面,允许管理员删除我学校使用3D打印机的请求。该页面显示来自MySQL数据库的时间表查询,并在每个条目旁边放置一个删除按钮。但是,我想将每个条目中的信息链接到其各自的删除按钮,但不知道如何做到这一点。您可以在这里看到页面本身:这是我用来显示信息的代码 if ($result = $mysqli->query($query)) { // see if any rows were returned if ($result->num_rows
if ($result = $mysqli->query($query)) {
// see if any rows were returned
if ($result->num_rows > 0) {
// yes
// print them one after another
echo "<table cellpadding=10 border=1>";
echo "<tr>";
echo "<th>Control</th>";
echo "<th>Student ID</th>";
echo "<th>Last Name</th>";
echo "<th>First Name</th>";
echo "<th>Date and Time</th>";
echo "<th>Description</th>";
echo "</tr>";
$key = 1;
while($row = $result->fetch_array()) {
echo '<form method="POST" name="deleterequest" action = "delete request.php">';
echo "<tr>";
echo "<td><input name='".$row[5]."'type='submit' value='Delete' ></td>";
echo "<td>".$row[0]."</td>";
echo "<td>".$row[1]."</td>";
echo "<td>".$row[2]."</td>";
echo "<td>".$row[3]."</td>";
echo "<td>".$row[4]."</td>";
echo "</tr>";
echo "</form>";
}
echo "</table>";
}
else {
// no
// print status message
echo "No upcoming prints found!";
}
// free result set memory
$result->close();
}
if($result=$mysqli->query($query)){
//查看是否返回了任何行
如果($result->num_rows>0){
//对
//一个接一个地打印出来
回声“;
回声“;
回声“控制”;
回显“学生ID”;
呼应“姓氏”;
呼应“名字”;
回应“日期和时间”;
呼应“描述”;
回声“;
$key=1;
而($row=$result->fetch_array()){
回声';
回声“;
回声“;
回显“$行[0]”;
回显“$行[1]”;
回显“$行[2]”;
回显“$行[3]”;
回显“$行[4]”;
回声“;
回声“;
}
回声“;
}
否则{
//没有
//打印状态消息
echo“未找到即将发布的指纹!”;
}
//释放结果集内存
$result->close();
}
我不知道如何将一行中的信息与我放在行中的delete按钮链接,以发送到delete request.php程序(我还没有代码)您将需要一些隐藏的输入,例如:
while($row = $result->fetch_array()) {
echo "<tr>";
echo '<td><form method="POST" name="deleterequest" action = "deleterequest.php">';
echo "<input type='hidden' name='val0' value='" . $row[0] . "'>";
echo "<input type='hidden' name='val1' value='" . $row[1] . "'>";
echo "<input type='hidden' name='val2' value='" . $row[2] . "'>";
echo "<input type='hidden' name='val3' value='" . $row[3] . "'>";
echo "<input type='hidden' name='val4' value='" . $row[4] . "'>";
echo "<input name='".$row[5]."'type='submit' value='Delete' >";
echo "</form></td>";
echo "<td>".$row[0]."</td>";
echo "<td>".$row[1]."</td>";
echo "<td>".$row[2]."</td>";
echo "<td>".$row[3]."</td>";
echo "<td>".$row[4]."</td>";
echo "</tr>";
}
while($row=$result->fetch\u array()){
回声“;
回声';
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回显“$行[0]”;
回显“$行[1]”;
回显“$行[2]”;
回显“$行[3]”;
回显“$行[4]”;
回声“;
}
您应该更改这些输入的名称,尽管您应该放置保存每个记录id的隐藏字段 如下
while($row = $result->fetch_array()) {
echo "<tr>";
echo "<td>";
echo '<form method="POST" name="deleterequest" action = "delete request.php">';
echo "<input name='recored_id' type='hidden' value='".$row['id']."' >";
echo "<input name='delete'type='submit' value='Delete' >";
echo "</form>";
echo "</td>";
echo "<td>".$row[0]."</td>";
echo "<td>".$row[1]."</td>";
echo "<td>".$row[2]."</td>";
echo "<td>".$row[3]."</td>";
echo "<td>".$row[4]."</td>";
echo "</tr>";
echo "</form>";
}
别忘了给这段代码一些安全验证
最好的情况是,这个方法是开放的SQL注入。@Fred ii-是的,我知道,我提到过做一些安全工作:)但是我会实际更新它,也可以写成
$recored\u id=mysqli\u real\u escape\u string($con,$\u POST['recored\u id')
@Fred ii-你说得对,但我们希望$\u POST['recored\u id'中有整数值。如果不是,查询将被填充,这就是我们想要的。然而,所有的路都通向罗马^--《罗马是一座美丽的城市!》很高兴看到OP接受了你的回答+1 ;-)如果你想使用复选框,我会让人们在上面看到,这就是我使用的;这对我有用。另外,您可以将复选框更改为radio;我就是这么做的。
$recored_id = (int) $_POST['recored_id'];
$sql = "DELETE FROM table_name WHERE recored_id='$recored_id'";