Did you try debugging? What happens if you update the re-ordering code to:
<?php
echo("on top ");
if (isset($_POST["UpdateOrder"])) {
echo("in if ");
mysql_select_db($database_PowerCMSConnection, $PowerCMSConnection);
$start = 1;
var_dump($_POST);
while (isset($_POST["ProductID_".$start])) {
mysql_query("UPDATE products SET ProductOrder = ". intval($_POST["ProductOrder_".$start]) ." WHERE ProductID = " . intval($_POST["ProductID_".$start]), $PowerCMSConnection) or die(mysql_error());
die("UPDATE products SET ProductOrder = ". intval($_POST["ProductOrder_".$start]) ." WHERE ProductID = " . intval($_POST["ProductID_".$start]));
$start++;
}
}
?>