quote($_SESSION['sys']['login'])); return $sql; } function build_query($details,$mask) { global $db; $where = ''; $keys = array_keys($mask['list']); for ($i=0; $iexecute($sql); $sql = sprintf("INSERT INTO %s (%s,%s,sys_user,sys_edit) SELECT %s,%s,%s,now() FROM %s%s " . "LEFT JOIN %s ON %s.%s = 1 AND %s.%s = %s.id WHERE %s.id IS NULL%s", $details['table'], $details['basecol'], $details['refcol'], $details['baseval'], $details['refid'], $db->quote($_SESSION['sys']['login']), $details['reftable'], array_key_exists('join', $mask) ? ' JOIN ' . join(' JOIN ', $mask['join']) : '', $details['table'], $details['table'], $details['basecol'], $details['table'], $details['refcol'], $details['reftable'], $details['table'], strlen($where) ? ' AND ' . $where : ''); } return $sql; } if (empty($_POST['table'])) exit; $hallinta = Hallinta::instance(); db_connect(); if (load_mask($hallinta->module(),$hallinta->page()) === false) exit; if ($hallinta->isSecond()) { if (!array_key_exists('second', $mask) || !array_key_exists($hallinta->second(), $mask['second'])) exit; $list = $mask['second'][$hallinta->second()]['list']; } else { $list = $mask['list']; } $fields = array_keys($list); $field = $fields[$_POST['column']]; if (empty($field)) exit; if (!is_array($list[$field]['update'])) exit; if (!array_key_exists('baseval', $list[$field]['update'])) $list[$field]['update']['baseval'] = $_POST['main_id']; if (isset($_POST['reference'])) $sql = build_simple_query($list[$field]['update']); else $sql = build_query($list[$field]['update'],$mask); $sth = $db->query($sql); if ($sth === false) error_log($sql . ': ' . db_error());