PHP获取要删除的自动sql数据

标签 php mysql

有人要求我基于 PHP 和 mySQL 创建时间表。

我创建了一个页面来插入数据和另一个页面来显示数据并编辑/删除显示的数据。

这是显示数据和编辑/删除它们的页面:

<?php
    while($info = mysql_fetch_array( $data )) {
?>
<tr>
    <td> <input type="checkbox" name="job" id="<?php echo $info['job_code']?>" value="<?php echo $info['job_code']?>" /></td>
    <td><?php echo $info['job_code'] ?></td>
    <td><?php echo $info['job_desc'] ?> </td>
    <td><?php echo $info['job_client'] ?> </td>
    <td><?php echo $info['job_year'] ?> </td>
    <td><?php echo $info['job_month']?> </td>
    <td><?php echo $info['job_date']?> </td>
    <td><?php echo $info['job_category']?> </td>
    <td>EDIT</td>
    <td>DELETE</td>
</tr>
<?php } ?>

这是删除过程

 $this->db_connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

$admin_data_query = mysql_query("SELECT * FROM jobs")or die(mysql_error());
$job_code_query = $_POST['job'];
$job_code_query_items = 'IN ( ';
foreach ($job_code_query as $key => $value) {
    $job_code_query_items .= ($key > 0 ? ", '" . $value . "'" : "'" . $value . "'");
}
$job_code_query_items .= ' );';
while ($admin_data = mysql_fetch_array($admin_data_query)) {
    if (isset($_POST[$admin_data['job_code']])) {
        $admin_sql = "DELETE FROM jobs WHERE job_code = $job_code_query_items";
        $admin_query = mysql_query($admin_sql) or die(mysql_error());
        $this->messages[] = "Job deleted.";
    } else {
        $this->messages[] = "Failed to delete job.";
    }
}

根据我的理解,第2页的job[]变量没有捕获到第1页用户提交的复选框,或者第一页没有发送数据,因为复选框值(可能我写错了)

编辑:我找到了答案,这里是正确的代码:

在第 1 页

<td>
    <input type="checkbox" name="<?php echo $info['job_code']?>"
           id="<?php echo $info['job_code']?>"
           value="<?php echo $info['job_code']?>"/>
</td>
<td><?php echo $info['job_code'] ?></td>
<td><?php echo $info['job_desc'] ?> </td>
<td><?php echo $info['job_client'] ?> </td>
<td><?php echo $info['job_year'] ?> </td>
<td><?php echo $info['job_month']?> </td>
<td><?php echo $info['job_date']?> </td>
<td><?php echo $info['job_category']?> </td>

正在处理页面(2)

 while ($admin_data = mysqli_fetch_array($admin_data_query)) {
    $job_code_query = $admin_data["job_code"];

    if (isset($_POST[$admin_data["job_code"]])) {

        $admin_sql = "DELETE FROM jobs WHERE job_code = '$job_code_query'";
        $admin_query = mysqli_query($this->db_connection, $admin_sql) or die(mysqli_error($this->db_connection));
        $this->messages[] = "Job deleted.";
    } else {
        $this->messages[] = "Failed to delete job.";
    }
}

感谢任何试图帮助或阅读它的人!

最佳答案

用那个替换你的第 29 行

$job_code_query = $_POST['job'];

您还应该使用 PDO 或 MySQLi 而不是 mysql_* 函数,这些函数现已弃用。 对于 MySQLi 连接,您必须使用 $dbconnection->query($sqlquery) 而不是 mysql_query

关于PHP获取要删除的自动sql数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18375305/

相关文章:

javascript - 如何获取data-esid属性并POST?

php - header 在带有 JS 输出的 PHP 文件上过期

mysql - 显示实时策略中的分离度

Mysql 使用 IF 进行复杂连接

php - Symfony2 DomCrawler 从 DOMElement 移除节点

PHP:使用 mysql_fetch_assoc 时出现问题

php - 搜索数据并会选择以静态表的形式显示。就像添加到购物车一样

php - 有没有办法一起运行 store_result 和 get_result

用于 Hibernate + JPA2 项目的 MySQL 或 PostgreSQL

mysql - 基于相关表中的列值的唯一性约束