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,$data)
23 for ($i=0; $i<count($data); $i++)
24 if (array_key_exists('filter_'.$i, $_POST)) {
25 $filter = explode('%', $_POST['filter_'.$i]);
26 if (strlen($where)) $where .= ' AND ';
27 if ($filter[0] === 'LIKE') $filter[1] = '%'.$filter[1].'%';
28 elseif ($filter[0] === 'EQ') $filter[0] = '=';
29 $where .= sprintf("%s %s '%s'", $data[$i]['name'], $filter[0], $filter[1]);
32 if ($_POST['value'] == 0)
33 $sql = sprintf("DELETE FROM %s WHERE %s = %d AND %s IN (SELECT %s FROM %s%s)",
35 $details['basecol'], $details['baseval'],
36 $details['refcol'], $details['refid'],
38 strlen($where) ? ' ' . $where : '');
40 $sql = sprintf("INSERT INTO %s (%s,%s,sys_user,sys_edit) SELECT %s,%s,'%s',now() FROM %s%s",
42 $details['basecol'], $details['refcol'],
43 $details['baseval'], $details['refid'],
44 pg_escape_string($_SESSION['sys']['login']),
46 strlen($where) ? ' ' . $where : '');
51 if (empty($_POST['table']))
55 if (load_mask(substr($_POST['table'],5)) === false) exit;
57 $fields = array_keys($mask['list']);
58 $field = $fields[$_POST['column']];
60 if (empty($field)) exit;
62 if (!is_array($mask['list'][$field]['update'])) return;
64 if (isset($_POST['reference']))
65 $sql = build_simple_query($mask['list'][$field]['update']);
67 $sql = build_query($mask['list'][$field]['update'],$mask['list']);
69 $sth = pg_query($sql);
72 error_log($sql . ': ' . pg_last_error());