私は数日間この問題を解決し続けており、つねに障害物に到達しています。私はtable2から一意のIDを選択し、それをtable1のIDと照合しようとしています。 idが一致する場合は、table1の行を更新し、table2からレコードを削除します。一致するものがなければ、レコードをtable1に挿入します。2つのテーブルに基づいてPHP/MySQLの更新と挿入
私はレコードを更新して新しいレコードを挿入することができますが、挿入前に一致するレコードを削除して複製を作成することはできません。私は更新後に削除結合クエリを試しましたが、新しいlogon_idに文字が前に付いているため、もはやtable2に一致しません。
私は更新のために前もって更新を行っていましたが、あまりにも多くのクエリを実行していましたので、単純にしておきます。
アドバイスはありますか?まだこのゲームでは新奇です。
$table2_query = "SELECT * FROM table2";
$table2_result = mysql_query($table2_query);
$table2_count = mysql_num_rows($table2_result);
if($table2_count == 0) {
if(mysql_error()) {
echo 'Error: '.mysql_error();
}
}
while($table2_row = mysql_fetch_array($table2_result, MYSQL_ASSOC)) {
$check_number_length = strlen($table2_row['unique_id']);
if($check_number_length < 7) {
if(substr($table2_row['unique_id'], 0, 2) < 35) {
$logon_id = 'n' . $table2_row['unique_id'];
}else {
$logon_id = 'v' . $table2_row['unique_id'];
}
}else {
$logon_id = $table2_row['unique_id'];
}
// Set variables for insert query for creation of a new user record
$first_name = $table2_row['firstname'];
$last_name = $table2_row['lastname'];
$email_address = $table2_row['email'];
$duplicates_query = "SELECT * FROM table1 WHERE '$logon_id' = logon_id";
$duplicates_result = mysql_query($duplicates_query);
$duplicates_row = mysql_fetch_array($duplicates_result);
$duplicates_count = mysql_num_rows($duplicates_result);
if($duplicates_count == 0) {
if(mysql_error()) {
echo 'Error: '.mysql_error();
}
}else {
$update_records_query = "UPDATE table1 SET first_name='$first_name', last_name='$last_name', email_address='$email_address'";
$update_records_result = mysql_query($update_records_query);
$update_records_count = mysql_affected_rows();
echo $update_records_count;
}
$create_records_query = "INSERT INTO table1 (first_name, last_name, email_address) VALUES ('$first_name', '$last_name', '$email_address')";
$create_records_result = mysql_query($create_records_query);
$create_records_count = mysql_affected_rows();
if($create_records_count == 0){
if(mysql_error()){
echo 'Error: '.mysql_error();
}
}
echo $create_records_count . ' record(s) created.';
}
でください開始きれいな "サンプル。 –
それで、あなたはそのDELETEクエリを実行できません。 –
申し訳ありません@GabrielSantosは可能な限りきれいにしようとしましたが、すべてがステップスルーできることを確認したかったのです。私は無関心なものをたくさん削除しました、謝罪します。 –