将mysqli中的一行移到另一个表中


Move a row in mysqli into another table

我有两个表,一个名为Contacts,一个名称为Repairs。

这是维修的内容

id
name
phone
address
budget
due

在联系人中,我有以下列

id
name
phone
address

有没有办法同步某些行的2个表?

name
phone
address

我正在寻找一种方法来添加一个按钮,它将移动和valadate,以确保它还没有在的修复中完成

name
phone
address

我不想删除维修中的行

到目前为止,我的按钮代码是

<a href="add_to_contacts.php?id#<?php echo$id; ?>Add to Contacts</a>

但我不知道在我的add_to_tacts.php 中有什么

我原以为会是

    <?php    
    include 'db_connect.php';
function move_row($id = 0) {
    $query = $this->db->query('select * from repairs where id = ' . $id);
    $row = $query->row_array();
    $this->db->insert('contacts',$name);
}
?>

请不要忘记,到目前为止,我得到的最后一点代码可能在一百万英里之外,但我只能说我试过了。

在这里使用的正确代码是什么?

更新

这是新的代码

<?php    
//include database connection
include 'db_connect.php';

$query = "INSERT INTO contacts (name, phone, address) SELECT name, phone, address FROM repair_jobs
                    where id='".$mysqli->real_escape_string($_REQUEST['id'])."'
                    limit 0,1";
                    ?>

这应该是一个注释,但有点长。

这个问题有根本的缺陷。

这里的问题是你的数据模式是错误的。您不应该在两个不同的表中保存相同的数据——这就是为什么它被称为RELATIONAL数据库的原因。维修表应包含:

id
budget
due
contact_id

其中contact_id是指联系人表中的一条记录。

在您的问题中,您没有提供任何详细信息,说明如何将要复制到联系人表中的数据进行匹配,以避免创建重复记录。

您可以使用INSERT。。。SELECT语法

INSERT INTO contacts (name, phone, address) SELECT name, phone, address FROM repairs WHERE id = $id

像这样:

<?php    
//include database connection
include 'db_connect.php';
$query = "INSERT INTO contacts (name, phone, address) 
          SELECT name, phone, address FROM repair_jobs 
          WHERE id='".$mysqli->real_escape_string($_REQUEST['id'])."' 
          LIMIT 0,1";
$mysqli->query($query);
?>
相关文章: