X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Faddress.php;fp=classes%2Faddress.php;h=62e7350e3bdc803e411243c2df2675dd2e721bcd;hb=1aff3b59c0f46dafe3396c1123a252645805e233;hp=e325d1ef7c83d70558054dbb1a105a27904105ee;hpb=e0e01724d7ef7f388307d62639867ea0dbac0fdb;p=platal.git diff --git a/classes/address.php b/classes/address.php index e325d1e..62e7350 100644 --- a/classes/address.php +++ b/classes/address.php @@ -834,8 +834,26 @@ class Address if (!$where) { throw new Exception("Unable to delete all addresses of the given type, the request was too generic"); } + $where_pub = $where . (($deletePrivate) ? '' : ' AND pub IN (\'public\', \'ax\')'); + + if ($deletePrivate) { + XDB::execute('DELETE FROM profile_addresses_components + WHERE type = {?}' . $where, + $type); + } else { + // Delete address components one by one if $deletePrivate is not requested + $res = XDB::iterator('SELECT pid, jobid, groupid, type, id + FROM profile_addresses + WHERE type = {?}' . $where_pub, + $type); + while (($values = $res->next())) { + XDB::execute('DELETE FROM profile_addresses_components + WHERE pid = {?} AND jobid = {?} AND groupid = {?} AND type = {?} AND id = {?}', + $values['pid'], $values['jobid'], $values['groupid'], $values['type'], $values['id']); + } + } XDB::execute('DELETE FROM profile_addresses - WHERE type = {?}' . $where . (($deletePrivate) ? '' : ' AND pub IN (\'public\', \'ax\')'), + WHERE type = {?}' . $where_pub, $type); if ($type == self::LINK_PROFILE) { Phone::deletePhones($pid, Phone::LINK_ADDRESS, null, $deletePrivate);