3 require_once('../init.php');
5 function build_simple_query($details)
7 if ($_POST['value'] == 0)
8 $sql = sprintf("DELETE FROM %s WHERE %s = %d AND %s = %d", $details['table'],
9 $details['basecol'], $details['baseval'],
10 $details['refcol'], $_POST['reference']);
12 $sql = sprintf("INSERT INTO %s (%s,%s,sys_user,sys_edit) VALUES (%d,%d,'%s',now())", $details['table'],
13 $details['basecol'], $details['refcol'],
14 $details['baseval'], $_POST['reference'],
15 pg_escape_string($_SESSION['sys']['login']));
20 function build_query($details,$mask)
23 $keys = array_keys($mask['list']);
24 for ($i=0; $i<count($keys); $i++)
25 if (array_key_exists('filter_'.$i, $_POST)) {
26 $filter = explode('|', $_POST['filter_'.$i]);
27 if (strlen($where)) $where .= ' AND ';
28 if ($filter[0] === 'LIKE') $filter[1] = '%'.$filter[1].'%';
29 elseif ($filter[0] === 'EQ') $filter[0] = '=';
30 $where .= sprintf("%s %s '%s'",
31 empty($mask['list'][$keys[$i]]['sql'])?$keys[$i]:$mask['list'][$keys[$i]]['sql'],
32 $filter[0], $filter[1]);
35 if ($_POST['value'] == 0)
36 $sql = sprintf("DELETE FROM %s WHERE %s = %d AND %s IN (SELECT %s FROM %s%s%s)",
38 $details['basecol'], $details['baseval'],
39 $details['refcol'], $details['refid'],
41 array_key_exists('join', $mask) ? ' JOIN ' . join(' JOIN ', $mask['join']) : '',
42 strlen($where) ? ' WHERE ' . $where : '');
44 $sql = sprintf("INSERT INTO %s (%s,%s,sys_user,sys_edit) SELECT %s,%s,'%s',now() FROM %s%s%s",
46 $details['basecol'], $details['refcol'],
47 $details['baseval'], $details['refid'],
48 pg_escape_string($_SESSION['sys']['login']),
50 array_key_exists('join', $mask) ? ' JOIN ' . join(' JOIN ', $mask['join']) : '',
51 strlen($where) ? ' WHERE ' . $where : '');
56 if (empty($_POST['table']))
60 if (load_mask(substr($_POST['table'],5)) === false) exit;
62 $fields = array_keys($mask['list']);
63 $field = $fields[$_POST['column']];
65 if (empty($field)) exit;
67 if (!is_array($mask['list'][$field]['update'])) return;
69 if (isset($_POST['reference']))
70 $sql = build_simple_query($mask['list'][$field]['update']);
72 $sql = build_query($mask['list'][$field]['update'],$mask);
74 $sth = pg_query($sql);
77 error_log($sql . ': ' . pg_last_error());