--- a/admin/fixoldamend.php +++ b/admin/fixoldamend.php @@ -1,26 +1,42 @@ prepare($query); $result->execute(); $query = 'update contractnotice set "childCN" = null where "childCN" = \'0\''; $result = $conn->prepare($query); $result->execute(); -$query = 'select "CNID","parentCN" from contractnotice where "CNID" like \'%00_\' and "parentCN" is not null'; +$query = 'select "CNID","parentCN" from contractnotice where char_length("CNID") > 6 and "CNID" like \'%00_\' and "parentCN" is not null'; +// "CNID" not like '%-A%' +//$query = 'select "CNID","parentCN" from contractnotice where char_length("CNID") > 8 and "CNID" like \'%00__\' and "parentCN" is not null'; $result = $conn->prepare($query); $result->execute(); foreach ($result->fetchAll() as $record) { $oldCN = $record['CNID']; - $parentCN = substr($oldCN,0,-3); + $parentCN = substr($oldCN, 0, -3); + //$parentCN = substr($oldCN, 0, -4); if ($parentCN == $record['parentCN']) { - $newCN = $parentCN . "-A". substr($oldCN,-1); - $updateresult = $conn->exec('UPDATE contractnotice SET "CNID" = -\'' . $newCN . '\' where "CNID" = \'' . $oldCN . '\';'); - echo "$oldCN => $newCN (from parent CN $parentCN)
\n"; - } - else { -// echo "parent CN unexpected - $oldCN doesn't look like child of {$record['parentCN']}
\n"; + $newCN = $parentCN . "-A" . substr($oldCN, -1); + //$newCN = $parentCN . "-A" . substr($oldCN, -2); + $updateresult = $conn->exec('UPDATE contractnotice SET "CNID" = \'' . $newCN . '\' where "CNID" = \'' . $oldCN . '\';'); + + $errors = $conn->errorInfo(); + + if ($errors[1] == 7) { + echo "$oldCN => $newCN (from parent CN $parentCN) BUT already exists so deleting this record
\n"; + $updateresult = $conn->exec('delete from contractnotice where "CNID" = \'' . $oldCN . '\';'); + + }else if ($errors[1] == 0) { + + echo "$oldCN => $newCN (from parent CN $parentCN)
\n"; + }else + print_r($errors); + } else { + echo "parent CN unexpected - $oldCN doesn't look like child of {$record['parentCN']}, rather the ID suggests child of $parentCN
\n"; } } +}