Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 在MYSQLI中删除一个表中的行,然后插入到另一个表中_Php_Jquery_Mysqli - Fatal编程技术网

Php 在MYSQLI中删除一个表中的行,然后插入到另一个表中

Php 在MYSQLI中删除一个表中的行,然后插入到另一个表中,php,jquery,mysqli,Php,Jquery,Mysqli,我有两个表名,分别称为“message”和“trash” 在“message”表中,我有一些表格式的数据包含(TO、SUBJECT、MSG、DATE),我使用Jquery应用了CHECKALL功能和CHECKBOX 现在我要执行的是,当有人删除任何一行时,它会将该行移动到另一个表,即“垃圾箱”中 删除查询是完美的工作,所以我想修改此代码。。。 这是我的密码- <form action="delete.php" method="post" name="data_table"> <

我有两个表名,分别称为“message”和“trash”

在“message”表中,我有一些表格式的数据包含(TO、SUBJECT、MSG、DATE),我使用Jquery应用了CHECKALL功能和CHECKBOX

现在我要执行的是,当有人删除任何一行时,它会将该行移动到另一个表,即“垃圾箱”中

删除查询是完美的工作,所以我想修改此代码。。。 这是我的密码-

<form action="delete.php" method="post" name="data_table">
<table class="table table-hover table-striped">
<tbody>
<tr style="background-color:#222D32;">
<td><input type="checkbox" id="check_all" value=""></td>
<td><input name="submit" type="submit" value="Delete" id="submit" class="btn btn-default btn-sm"></td>
<td></td>
<td></td>
</tr>

<tr>
<td><input type="checkbox" value="<?php echo $rw['id']; ?>" name="data[]" id="data"></td>
<td><b><?php echo $rw['fto']; ?></td>
<td><b><?php echo $rw['subject']; ?></b></td>
<td><b><?php echo $rw['date']; ?></b></td>
<tr>
</tbody>
</table>
</form>

下面是delete.php文件

<?php
require_once("config.php");
if(isset($_POST['submit'])) {

    $id_array = $_POST['data']; // return array
    $id_count = count($_POST['data']); // count array

    for($i=0; $i < $id_count; $i++) {
        $id = $id_array[$i];
        $query = mysqli_query($con, "DELETE FROM `message` WHERE `id` = '$id'");
        if(!$query) { die(mysqli_error()); }
    }
    header("Location: sent.php"); // redirect after deleting
}
?>

在delete.php中,您应该编写如下内容

<?php
require_once("config.php");
if(isset($_POST['submit'])) {

$id_array = $_POST['data']; // return array
$id_count = count($_POST['data']); // count array

for($i=0; $i < $id_count; $i++) {
    $id = $id_array[$i];
    $query = mysqli_query($con, "INSERT INTO trash SELECT * FROM `message` WHERE `id` = '$id'");
    $query = mysqli_query($con, "DELETE FROM `message` WHERE `id` = '$id'");
        if(!$query) { die(mysqli_error()); }
    }
    header("Location: sent.php"); // redirect after deleting
}
?>

在这种情况下,您应该使用
触发器
。非常感谢您的回复,它工作正常,但在“垃圾”表中,它接收到0个值???垃圾和消息表列是否匹配,如果是,则匹配列数据类型。此逻辑必须有效,直到出现相同的问题,两个表中的所有列字段名称都相同。。i、 e'id'、'fto'、'subject'、'msg'、'date'嗨,在从表URL选择行时,有关插入查询的不同语法,请参阅此链接:
<?php
require_once("config.php");
if(isset($_POST['submit'])) {

$id_array = $_POST['data']; // return array
$id_count = count($_POST['data']); // count array

for($i=0; $i < $id_count; $i++) {
    $id = $id_array[$i];
    $query = mysqli_query($con, "INSERT INTO trash SELECT * FROM `message` WHERE `id` = '$id'");
    $query = mysqli_query($con, "DELETE FROM `message` WHERE `id` = '$id'");
        if(!$query) { die(mysqli_error()); }
    }
    header("Location: sent.php"); // redirect after deleting
}
?>