-1

Contacts という名前のテーブルと Repairs という名前のテーブルが 2 つあります。

リペアの内容はこちら

id
name
phone
address
budget
due

連絡先には次の列があります

id
name
phone
address

特定の行の 2 つのテーブルを同期する方法はありますか?

name
phone
address

移動して検証するボタンを追加して、Repairs の行でまだ実行されていないことを確認する方法を探しています

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 は、連絡先テーブルのレコードを参照します。

あなたの質問では、重複レコードの作成を避けるために連絡先テーブルにコピーする予定のデータをどのように照合するかについての詳細を提供していません。

于 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 に答える