3 // WARNING: this script takes a few weeks to be executed completly, thus run it into a screen.
5 require_once 'connect.db.inc.php';
6 require_once '../../classes/address.php';
8 $globals->debug
= 0; // Do not store backtraces.
10 echo "Tries to geocode addresses (due a bug in the previous release, all addresses must run once again). (1/2)\n";
11 $it = XDB
::rawIterator('SELECT *
12 FROM profile_addresses
13 ORDER BY pid, jobid, type, id');
16 while ($address = new Address($it->next())) {
17 $address->format(array(true
, true
));
20 if (!($pid == $address->pid
&& $jobid == $address->jobid
)) {
22 $jobid = $address->jobid
;
27 echo "Deletes duplicated addresses. (2/2)\n";
28 $it = XDB
::rawIterator("SELECT *
29 FROM profile_addresses
33 $duplicates = array();
34 $address = new Address($it->next());
36 $addresses[] = $address;
38 while ($address = new Address($it->next())) {
39 if ($address->pid
== $pid) {
40 $address[] = $address;
44 for ($i = 0; $i < $count; ++
$i) {
45 for ($j = $i +
1; $j < $count; ++
$j) {
46 if ($addresses[$i]->text
== $addresses[$j]->text
) {
47 $duplicates[$i] = true
;
51 foreach ($duplicates as $key => $bool) {
52 unset($addresses[$key]);
54 if (count($addresses) != $count) {
55 Address
::deleteAddresses($pid, 'home');
57 foreach ($addresses as $address) {
62 XDB
::execute('UPDATE profile_merge_issues
63 SET issues = REPLACE(issues, \'address\', \'\')
64 WHERE pid = {?}', $pid);
70 $addresses[] = $address;
75 echo "That's all folks!\n";
77 /* vim:set et sw=4 sts=4 ts=4: */