Prova a fare qualcosa del genere:
Codice PHP:
<?php
error_reporting(E_ALL);
$db = mysql_connect('localhost', 'user', ''); // connesione
mysql_select_db('database', $db);
$q = mysql_query('SELECT * FROM tab1', $db); // prima query
$t1 = array(); // dati tabella 1
$t2 = array(); // dati tabella 2
while($r = mysql_fetch_assoc($q)) { // tabella1
$t1[$r['id']] = $r;
}
mysql_free_result($q);
$q = mysql_query('SELECT * FROM tab2', $db); // seconda query
while($r = mysql_fetch_assoc($q)) { // tabella 2
$t2[$r['id']] = $r;
}
mysql_free_result($q);
foreach($t1 as $r) {
if(array_key_exists($r['id'], $t2)) { // se l'id esiste nel secondo array
if($t1['name'] != $t2['name']) { // controllo i dati e se non corrispondono, aggiorno il record
mysql_query("UPDATE tab2 SET name = '{$t1['name']}' WHERE id = {$t2['id']} LIMIT 1", $db);
}
} else { // se non esiste l'id, lo creo
mysql_query("INSERT INTO tab2 (id, name) VALUES ({$t1['id']}, '{$t1['name']}'", $db);
}
}
mysql_close($db);
?>
Non ho avuto modo di provarlo ma credo che questo sia il procedimento giusto!