我有两个表,一个名为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);
?>