Try updating your form action from:
action="<?php echo (htmlentities($_SERVER["PHP_SELF"], ENT_QUOTES)); ?>"
That might be the issue. The recordset needs the url parameter to find the correct row and that action is probably stripping it out. Leaving it blank preserves the original page location including the url parameter.