用php删除mysql表中的行

时间:2017-12-25 05:24:43

标签: php mysql

这里的PHP新手 我有一个循环数据库的页面,并显示表的内容。 按下删除按钮时,我想删除数据库中的该条目。 现在当按下按钮并且页面转到delete.php时,我一直得到Undefined index:userid

这是第一页:

<?php
foreach($rows as $row){
$userid = $row['userid'];
$pName = $row['pName'];
$pDesc = $row['pDesc'];
$dDate = $row['dDate'];
?>

<div class="project-container">

    <label>Project ID:</label>
    <span><?php echo $userid; ?></span><br>
    <label>Project Owner:</label>
    <span><?php echo $pName; ?></span><br>
    <label>Project Description:</label>
    <span><?php echo $pDesc; ?> </span><br>
    <label>Project Due Date:</label>
    <span><?php echo $dDate; ?> </span><br>
    <br>

    <form action="#" method="GET">
        <input type="submit" name="delete" value="Delete Project">
    </form>
    <form action="index.php">
        <input type="submit" name="update" value="Update Project">
    </form>
    </div>
    <br>
    <br>

</div><br><br><?php } ?>

这是delete.php:

include('connect.php');
$userid = $_GET['userid'];
echo $userid;
$sql = "DELETE FROM projecttable WHERE userid  = '$userid'";
$conn->exec($sql);

感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:1)

试试这个。它将在名为userid的GET数组中将变量发送到delete.php:

<form action="delete.php" method="GET">
    <input type="hidden" name="userid" value="<?php echo $userid; ?>">
    <input type="submit" name="delete" value="Delete Project">
</form>

表单标记中的action属性将指示发送请求的位置,即delete.php脚本,该方法将告诉它使用GET数组,该数组基本上将键和值放在URL本身中。您可以通过修改操作字段而不是使用输入字段来执行此操作。我只是喜欢这种方式以便于阅读。

因为输入字段通常是可见的,所以使用隐藏字段可以防止它显示在网页上,但是在代码中很容易管理。输入字段的name属性确定GET数组中键的名称,value属性确定GET数组中该元素的值。所以它最终是PHP脚本中的$ _GET ['name_attribtue'] = value_attribute。

仅举例。如果将form方法属性更改为POST,则PHP脚本需要使用$ _POST数组而不是$ _GET数组。