間違っていたら申し訳ありませんが、現在の DB テーブルでこのクエリを 1 回実行しますか? そして、両方のテーブルに同じ量の行があると思います(そして、互いの順序で)?
これらを分割すると、次のようになります。
たとえば、従業員テーブル:
- employee_id(auto_increment)
- employee_firstname
- employee_lastname
- employee_document_id
- +whatever you want etc
ドキュメント テーブルの例:
- document_id(auto_increment)
- document_name
- document_path
- document_employee_id
- +whatever you want etc.
これがあなたの言いたいことなら、私は次のことがうまくいくと思います:
1: PDO のセットアップ (エディターが機能しなかったので、">")
<?php
$config['db'] = array(
'host' => 'host',
'username' => 'username',
'password' => 'password',
'dbname' => 'dbname'
);
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password']);
?>
2: 挿入クエリを設定する
<?php
$select_query = "SELECT * FROM table1";
//$db is PDO example name
$select_all = $db->prepare($select_query);
$select_all->execute();
$count = $select_all->rowCount();
for(var i = 0; i =< $count; ++i) {
$insert_query1 = "INSERT INTO table1 (employee_firstname,
employee_lastname, employee_document_id)
VALUES(employee_firstnameValue, employee_lastnameValue,'"i"'";
$insert_query2 = "INSERT INTO table2 (document_name, document_path,
employee_id) VALUES(document_nameValue, document_pathValue, '"i"')"
$insert_table1 = $db->prepare($insert_query1);
$insert_table1->execute()
$insert_table2 = $db->prepare($insert_query2);
$insert_table2->execute()
}
?>
1から始まるauto_incrementを取得すると、毎回en de ++iが発生するため、上記が機能すると思います。したがって、employee_document_id と document_employee_id は、auto_increment が (これも 1) であるのと同様に、両方とも ++i (1) になります。
しかし、これは考えすぎかもしれません..または、あなたのモデルではうまくいきません
補足:
- クエリではパラメーターを使用することをお勧めします。
- これは私の頭に浮かんだ大まかな説明方法です(ここから何かを拾うことができるかもしれません..)
編集:別の解決策は、「SELECT MAX」のようなクエリを使用することですが、これは安全ではありません。