Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从HTML页面删除MySQL条目_Php_Html_Mysql_Database - Fatal编程技术网

Php 从HTML页面删除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

我正试图为我的网站设计一个控制页面,允许管理员删除我学校使用3D打印机的请求。该页面显示来自MySQL数据库的时间表查询,并在每个条目旁边放置一个删除按钮。但是,我想将每个条目中的信息链接到其各自的删除按钮,但不知道如何做到这一点。您可以在这里看到页面本身:这是我用来显示信息的代码

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'";