Erik Tews: Delete assignments when deleting a job
authorJoey Schulze <joey@infodrom.org>
Sat, 11 May 2002 23:37:18 +0000 (23:37 +0000)
committerJoey Schulze <joey@infodrom.org>
Sat, 11 May 2002 23:37:18 +0000 (23:37 +0000)
src/LinuxTag/2002/supporter/update.wml

index e24802e..a6c2e20 100644 (file)
     pg_exec($dbh, "BEGIN TRANSACTION") or die ("Could not start transaction.");
 
     if ($id > 0 && $delete == 1) {
+      $query = sprintf ("SELECT id FROM jobfragment WHERE jobid = %d", $id);
+      $sth = pg_exec ($dbh, $query) or die ("Cannot execute query");
+      for ($x = 0; $x < pg_NumRows($sth); $x++)
+      {
+       $row = pg_fetch_array($sth, $x);
+       $query = sprintf("DELETE FROM assignment WHERE id = %d", $row['id']);
+       pg_exec($dbh, $query) or die ("Cannot execute query");
+      }
       $query = sprintf ("DELETE FROM job WHERE id = %d", $id);
       pg_exec($dbh, $query) or die ("Can't delete job.");
       $query = sprintf ("DELETE FROM jobfragment WHERE jobid = %d", $id);
                           $oid);
            pg_exec($dbh, $query) or die ("Database Query.");
          } else {
+           $query = sprintf ("SELECT id FROM jobfragment WHERE oid = %d", $oid)
+           pg_exec($dbh, $query) or die ("Cannot execute query");
+           if (pg_NumRows($sth) > 0)
+           {
+             $row = pg_fetch_array($sth, 0);
+           } else {
+             die ("Could not find jobfragment");
+           }
+           $query = sprintf ("DELETE FROM assignment WHERE id = %d", $row['id']);
+           pg_exec($dbh, $query) or die ("Cannot execute query");
            $query = sprintf ("DELETE FROM jobfragment WHERE oid = %d", $oid);
            pg_exec($dbh, $query) or die ("Database Query.");
          }