Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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 从一个表中删除行并添加到另一个表中_Php_Mysql_Sql_Google Maps - Fatal编程技术网

Php 从一个表中删除行并添加到另一个表中

Php 从一个表中删除行并添加到另一个表中,php,mysql,sql,google-maps,Php,Mysql,Sql,Google Maps,我用谷歌地图API实现了一些功能,用户可以在地图上添加一个标记。添加标记后,它将存储在“虚拟”表中 在管理员批准该标记之前,它应该一直保留在虚拟表中。管理员批准标记后,应将其从虚拟表中删除,并与其余标记一起添加到常规表中 目前,我在下面有一些代码,它显示了虚拟表中的行列表,并允许我从表中删除行,但它不会将行添加到当前表中。是否有一种简单的方法来修改此代码以实现此目的 index.php-Jquery $(document).ready(function() { //##### Send

我用谷歌地图API实现了一些功能,用户可以在地图上添加一个标记。添加标记后,它将存储在“虚拟”表中

在管理员批准该标记之前,它应该一直保留在虚拟表中。管理员批准标记后,应将其从虚拟表中删除,并与其余标记一起添加到常规表中

目前,我在下面有一些代码,它显示了虚拟表中的行列表,并允许我从表中删除行,但它不会将行添加到当前表中。是否有一种简单的方法来修改此代码以实现此目的

index.php-Jquery

$(document).ready(function() {

    //##### Send delete Ajax request to response.php #########
    $("body").on("click", "#responds .del_button", function(e) {
         e.returnValue = false;
         var clickedID = this.id.split('-'); //Split string (Split works as PHP explode)
         var DbNumberID = clickedID[1]; //and get number from array
         var myData = 'recordToDelete='+ DbNumberID; //build a post data structure

            jQuery.ajax({
            type: "POST", // HTTP method POST or GET
            url: "response.php", //Where to make Ajax calls
            dataType:"text", // Data type, HTML, json etc.
            data:myData, //Form variables
            success:function(response){
                //on success, hide  element user wants to delete.
                $('#item_'+DbNumberID).fadeOut("slow");
            },
            error:function (xhr, ajaxOptions, thrownError){
                //On error, we alert user
                alert(thrownError);
            }
            });
    });

});
Index.php-php

<?php
//include db configuration file
include_once("config.php");

//MySQL query
$Result = mysql_query("SELECT * FROM markersunapproved");

//get all records from markersunapproved table
while($row = mysql_fetch_array($Result))
{
  echo '<li id="item_'.$row["id"].'">';
  echo '<div class="del_wrapper"><a href="#" class="del_button" id="del-'.$row["id"].'">';
  echo '<img src="images/icon_del.gif" border="0" />';
  echo '</a></div>';
  echo $row["name"];
  echo $row["address"];
  echo $row["lat"];
  echo $row["lng"];
  echo $row["type"].'</li>';

}


//close db connection
mysql_close($connecDB);
?>
response.php

<?php
//include db configuration file
include_once("config.php");


if(isset($_POST["recordToDelete"]) && strlen($_POST["recordToDelete"])>0 && is_numeric($_POST["recordToDelete"]))
{   //do we have a delete request? $_POST["recordToDelete"]

    //sanitize post value, PHP filter FILTER_SANITIZE_NUMBER_INT removes all characters except digits, plus and minus sign.
    $idToDelete = filter_var($_POST["recordToDelete"],FILTER_SANITIZE_NUMBER_INT); 

    //try deleting record using the record ID we received from POST
    if(!mysql_query("DELETE FROM markersunapproved WHERE id=".$idToDelete ) )
    {    

    //If mysql delete query was unsuccessful, output error 
        header('HTTP/1.1 500 Could not delete record!');
        exit();

    }
    mysql_close($connecDB); //close db connection
}
else
{
    //Output error
    header('HTTP/1.1 500 Error occurred, Could not process request!');
    exit();
}
?>

您只需在删除markersunapproved中的条目之前添加插入即可

mysql_query("
INSERT INTO [YOUR DESTINATION TABLE] 
SELECT *
FROM markersunapproved
WHERE id = {$idToDelete}
");

首先,您必须在删除之前复制数据:

INSERT INTO regular_table 
            (name, 
             address, 
             lat, 
             lng, 
             type) 
SELECT name, 
       address, 
       lat, 
       lng, 
       type 
FROM   dummy_table 
WHERE  1 
       AND dummy_table.id = id; 
要使其正常工作,常规_表中的id列应在分配主索引的情况下自动递增,以便自动生成insert中每一行的id

其次,运行代码中已有的查询:

DELETE FROM dummy_table 
WHERE id = id

谢谢@Joseph Collins