在PHP中删除行中的记录

在PHP中删除行中的记录,php,html,mysql,Php,Html,Mysql,我试图删除数据库中的一条记录。所以基本上我创建了一个包含所有记录的表。现在我需要做的是,当我点击“删除”链接时,它将删除选中的记录行 下面是它的样子: 基本上我这里有3页 1.page.php 2.add.php 3.delete.php 这是我的page.php文件: <table border="1"> <thead> <th>email</th> <th>date</th>

我试图删除数据库中的一条记录。所以基本上我创建了一个包含所有记录的表。现在我需要做的是,当我点击“删除”链接时,它将删除选中的记录行

下面是它的样子:

基本上我这里有3页
1.page.php
2.add.php
3.delete.php

这是我的page.php文件:

<table border="1">
    <thead>
        <th>email</th>
        <th>date</th>
        <th>delete</th>
    </thead>

    <tbody>
        <tr>
        <?php 
            foreach($emails as $mail){ ?>
            <td><?php echo $mail['email']; ?></td>
            <td><?php echo $mail['date']; ?></td>
            <td><?php echo "<a href='delete.php?id=". $mail['id']. "'>DELETE</a>"; ?></td>
        </tr>
            <?php } ?>


    </tbody>
</table>
<?php
    require("new-connection.php");

    session_start();

    $email = $_POST['email'];
    if(empty($_POST['email']) AND (filter_var($email, FILTER_VALIDATE_EMAIL) === false))
     {
          $_SESSION['message'] = "email cannot be blank";
     }else{
        $query = "INSERT INTO email_tbl (email, date)
              VALUES('$email', NOW())";       

    $insertEmail = run_mysql_query($query);


    if(run_mysql_query($query))
    {
        $_SESSION['message'] .= "New RECORD has been added correctly!";
    }
    else
    {
        $_SESSION['message'] .= "Failed to add new Interest"; 
    }

    }


    header('Location: email.php');




?>
$id = $_GET['id'];

$query = "DELETE FROM email_tbl WHERE id='$id' LIMIT 1";  

电子邮件
日期
删除
下面是我的add.php文件:

<table border="1">
    <thead>
        <th>email</th>
        <th>date</th>
        <th>delete</th>
    </thead>

    <tbody>
        <tr>
        <?php 
            foreach($emails as $mail){ ?>
            <td><?php echo $mail['email']; ?></td>
            <td><?php echo $mail['date']; ?></td>
            <td><?php echo "<a href='delete.php?id=". $mail['id']. "'>DELETE</a>"; ?></td>
        </tr>
            <?php } ?>


    </tbody>
</table>
<?php
    require("new-connection.php");

    session_start();

    $email = $_POST['email'];
    if(empty($_POST['email']) AND (filter_var($email, FILTER_VALIDATE_EMAIL) === false))
     {
          $_SESSION['message'] = "email cannot be blank";
     }else{
        $query = "INSERT INTO email_tbl (email, date)
              VALUES('$email', NOW())";       

    $insertEmail = run_mysql_query($query);


    if(run_mysql_query($query))
    {
        $_SESSION['message'] .= "New RECORD has been added correctly!";
    }
    else
    {
        $_SESSION['message'] .= "Failed to add new Interest"; 
    }

    }


    header('Location: email.php');




?>
$id = $_GET['id'];

$query = "DELETE FROM email_tbl WHERE id='$id' LIMIT 1";  

修改delete.php以检索url参数:

<?php
    require("new-connection.php");
    session_start();

    $id = $_GET['id'];

    $query = "DELETE FROM email_tbl
            WHERE id='$id' LIMIT 1";       

    $deleteEmail = run_mysql_query($query);


    if($deleteEmail)
    {
        $_SESSION['message'] .= "RECORD has been DELETED correctly!";
    }
    else
    {
        $_SESSION['message'] .= "Failed to DELETE RECORD"; 
    }

    header('Location: email.php');
?>
您应该将其更改为:

$insertEmail = run_mysql_query($query);


    if($insertEmail)

您现在正在做的是,通过两次调用run\u mysql\u query来执行两次查询。这将修复它

更新delete.php文件:

<table border="1">
    <thead>
        <th>email</th>
        <th>date</th>
        <th>delete</th>
    </thead>

    <tbody>
        <tr>
        <?php 
            foreach($emails as $mail){ ?>
            <td><?php echo $mail['email']; ?></td>
            <td><?php echo $mail['date']; ?></td>
            <td><?php echo "<a href='delete.php?id=". $mail['id']. "'>DELETE</a>"; ?></td>
        </tr>
            <?php } ?>


    </tbody>
</table>
<?php
    require("new-connection.php");

    session_start();

    $email = $_POST['email'];
    if(empty($_POST['email']) AND (filter_var($email, FILTER_VALIDATE_EMAIL) === false))
     {
          $_SESSION['message'] = "email cannot be blank";
     }else{
        $query = "INSERT INTO email_tbl (email, date)
              VALUES('$email', NOW())";       

    $insertEmail = run_mysql_query($query);


    if(run_mysql_query($query))
    {
        $_SESSION['message'] .= "New RECORD has been added correctly!";
    }
    else
    {
        $_SESSION['message'] .= "Failed to add new Interest"; 
    }

    }


    header('Location: email.php');




?>
$query = "DELETE FROM email_tbl WHERE id=".$_GET['id']." LIMIT 1";
$id = $_GET['id'];

$query = "DELETE FROM email_tbl WHERE id='$id' LIMIT 1";  
并检查以下部分: 您正在运行两次查询。因此,很明显,它将两次添加相同的记录

$insertEmail = run_mysql_query($query);

if(run_mysql_query($query))
{
    $_SESSION['message'] .= "New RECORD has been added correctly!";
}

修改您的代码以仅使用一次run\u mysql\u查询。

在php中运行什么函数时感觉到什么


改用一个按钮,并将每个按钮包装成一个表单,其中包含一个隐藏的id字段,或者您可以使用iframe和$\u GET甚至ajax。这个id={id}不可能工作。不重新加载页面,实时是什么意思?这是什么?运行\u mysql\u query()哇,谢谢@我一个人。知道为什么我的插入代码同时返回2条记录吗?基本上,当我将电子邮件放在输入上并单击“提交”时,它会自动添加具有相同记录的两行,并复制我插入的内容?????你知道这是什么原因吗???可能是因为你调用了2次run_mysql_query(我指的是add.php,顺便说一下):)它插入了两条记录。定义查询后,你调用$deleteEmail=run_mysql_query($query);在if语句中,您应该使用$deleteMail变量wesome!哈哈哈。谢谢