-1

我有两张表,一张名为 Contacts,一张名为 Repairs。

这是维修的内容

id
name
phone
address
budget
due

在联系人中,我有以下列

id
name
phone
address

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

name
phone
address

我正在寻找一种方法来添加一个按钮,该按钮将移动并验证以确保它尚未在修复中的行上完成

name
phone
address

我不想删除修复中的行

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

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

但我不知道在我的 add_to_contacts.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";

                    ?>
4

2 回答 2

2

真的这应该是一个评论 - 但它有点长。

这个问题从根本上是有缺陷的。

这里房间里的大象是你的数据模式是错误的。您不应该在 2 个不同的表中保存相同的数据 - 这就是为什么它被称为 RELATIONAL 数据库。维修表应包含:

id
budget
due
contact_id

其中contact_id 指的是contacts 表中的一条记录。

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

于 2013-08-21T09:46:29.443 回答
1

您可以使用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);
?>
于 2013-08-21T09:04:28.903 回答