| version 1.62, 2003/03/29 01:44:53 |
version 1.63, 2003/03/29 15:41:18 |
|
|
| * http://www.platon.sk/projects/phpMyEdit/ |
* http://www.platon.sk/projects/phpMyEdit/ |
| */ |
*/ |
| |
|
| /* $Platon: phpMyEdit/phpMyEdit.class.php,v 1.61 2003/03/29 01:34:04 nepto Exp $ */ |
/* $Platon: phpMyEdit/phpMyEdit.class.php,v 1.62 2003/03/29 01:44:53 nepto Exp $ */ |
| |
|
| /* This is a generic table editing program. The table and fields to be |
/* This is a generic table editing program. The table and fields to be |
| edited are defined in the calling program. |
edited are defined in the calling program. |
|
|
| } else { |
} else { |
| $db = $this->db; |
$db = $this->db; |
| } |
} |
| $table = $this->fdd[$field_num]['values']['table']; |
$table = &$this->fdd[$field_num]['values']['table']; |
| $key = $this->fdd[$field_num]['values']['column']; |
$key = &$this->fdd[$field_num]['values']['column']; |
| $desc = $this->fdd[$field_num]['values']['description']; |
$desc = &$this->fdd[$field_num]['values']['description']; |
| $qparts['type'] = 'select'; |
$qparts['type'] = 'select'; |
| if ($table) { |
if ($table) { |
| $qparts['select'] = 'DISTINCT '.$key; |
$qparts['select'] = 'DISTINCT '.$key; |
| if ($desc) { |
if ($desc && is_array($desc) && is_array($desc['columns'])) { |
| if (is_array($desc)) { |
$qparts['select'] .= ',CONCAT('; // ) |
| $qparts['select'] .= ',CONCAT('; // ) |
$num_cols = sizeof($desc['columns']); |
| $num_cols = sizeof($desc['columns']); |
if (isset($desc['divs'][-1])) { |
| for ($i = 0; $i <= $num_cols; $i++) { |
$qparts['select'] .= '"'.addslashes($desc['divs'][-1]).'",'; |
| $qparts['select'] .= $desc['columns'][$i]; |
} |
| if ($desc['divs'][$i]) { |
foreach ($desc['columns'] as $key => $val) { |
| $qparts['select'] .= ',"'.$desc['divs'][$i].'"'; |
if ($val) { |
| } |
$qparts['select'] .= $val; |
| if ($i < ($num_cols - 1)) { |
if ($desc['divs'][$key]) { |
| $qparts['select'] .= ','; |
$qparts['select'] .= ',"'.addslashes($desc['divs'][$key]).'"'; |
| } |
} |
| |
$qparts['select'] .= ','; |
| } |
} |
| $qparts['select'] .= ') AS select_alias_'.$field_num; |
|
| $qparts['orderby'] = empty($desc['orderby']) |
|
| ? 'select_alias_'.$field_num : $desc['orderby']; |
|
| } else { |
|
| $qparts['select'] .= ','.$desc; |
|
| $qparts['orderby'] = $desc; |
|
| } |
|
| } else { |
|
| if ($key) { |
|
| $qparts['orderby'] = $key; |
|
| } |
} |
| |
$qparts['select']{strlen($qparts['select']) - 1} = ')'; |
| |
$qparts['select'] .= ' AS select_alias_'.$field_num; |
| |
$qparts['orderby'] = empty($desc['orderby']) |
| |
? 'select_alias_'.$field_num : $desc['orderby']; |
| |
} else if ($desc && is_array($desc)) { |
| |
// TODO |
| |
} else if ($desc) { |
| |
$qparts['select'] .= ','.$desc; |
| |
$qparts['orderby'] = $desc; |
| |
} else if ($key) { |
| |
$qparts['orderby'] = $key; |
| } |
} |
| //$qparts['from'] = "$db.$table.$sel; |
//$qparts['from'] = "$db.$table.$sel; |
| $qparts['from'] = "$db.$table"; |
$qparts['from'] = "$db.$table"; |
|
|
| if ($this->add_operation() |
if ($this->add_operation() |
| || $this->copy_operation() |
|| $this->copy_operation() |
| || $this->change_operation()) { |
|| $this->change_operation()) { |
| $ret = 'Table0.'.$this->fds[$field]; |
$ret = 'PMEtable0.'.$this->fds[$field]; |
| } else { |
} else { |
| if (isset($this->fdd[$field]['expression'])) { |
if (isset($this->fdd[$field]['expression'])) { |
| $ret = $this->fdd[$field]['expression']; |
$ret = $this->fdd[$field]['expression']; |
| } elseif ($this->fdd[$this->fds[$field]]['values']['description'] && ! $dont_desc) { |
} elseif ($this->fdd[$this->fds[$field]]['values']['description'] && ! $dont_desc) { |
| // Changed 06/08/02 Shaun Johnston |
// Changed 06/08/02 Shaun Johnston |
| $desc = $this->fdd[$this->fds[$field]]['values']['description']; |
$desc = &$this->fdd[$this->fds[$field]]['values']['description']; |
| if (is_array($desc)) { |
if (is_array($desc) && is_array($desc['columns'])) { |
| $ret = 'CONCAT('; // ) |
$ret = 'CONCAT('; // ) |
| $num_cols = sizeof($desc['columns']); |
$num_cols = sizeof($desc['columns']); |
| for ($i = 0; $i < $num_cols; $i++) { |
if (isset($desc['divs'][-1])) { |
| $ret .= 'JoinTable'.$field.'.'.$desc['columns'][$i]; |
$ret .= '"'.addslashes($desc['divs'][-1]).'",'; |
| if ($desc['divs'][$i]) { |
} |
| $ret .= ',"'.$desc['divs'][$i].'"'; |
foreach ($desc['columns'] as $key => $val) { |
| } |
if ($val) { |
| if ($i < ($num_cols - 1)) { |
$ret .= 'PMEjoin'.$field.'.'.$val; |
| |
if ($desc['divs'][$key]) { |
| |
$ret .= ',"'.addslashes($desc['divs'][$key]).'"'; |
| |
} |
| $ret .= ','; |
$ret .= ','; |
| } |
} |
| } |
} |
| $ret .= ')'; |
$ret{strlen($ret) - 1} = ')'; |
| |
} else if (is_array($desc)) { |
| |
// TODO |
| } else { |
} else { |
| $ret = 'JoinTable'.$field.'.'.$this->fdd[$this->fds[$field]]['values']['description']; |
$ret = 'PMEjoin'.$field.'.'.$this->fdd[$this->fds[$field]]['values']['description']; |
| } |
} |
| // TODO: remove me |
// TODO: remove me |
| } elseif (0 && $this->fdd[$this->fds[$field]]['values']['column'] && ! $dont_cols) { |
} elseif (0 && $this->fdd[$this->fds[$field]]['values']['column'] && ! $dont_cols) { |
| $ret = 'JoinTable'.$field.'.'.$this->fdd[$this->fds[$field]]['values']['column']; |
$ret = 'PMEjoin'.$field.'.'.$this->fdd[$this->fds[$field]]['values']['column']; |
| } else { |
} else { |
| $ret = 'Table0.'.$this->fds[$field]; |
$ret = 'PMEtable0.'.$this->fds[$field]; |
| } |
} |
| // TODO: not neccessary, remove me! |
// TODO: not neccessary, remove me! |
| if (is_array($this->fdd[$this->fds[$field]]['values2'])) { |
if (is_array($this->fdd[$this->fds[$field]]['values2'])) { |
|
|
| function create_join_clause() /* {{{ */ |
function create_join_clause() /* {{{ */ |
| { |
{ |
| $tbs[] = $this->tb; |
$tbs[] = $this->tb; |
| $join = $this->tb.' AS Table0'; |
$join = $this->tb.' AS PMEtable0'; |
| for ($k = 0,$numfds = sizeof($this->fds); $k<$numfds; $k++) { |
for ($k = 0,$numfds = sizeof($this->fds); $k<$numfds; $k++) { |
| $field = $this->fds[$k]; |
$field = $this->fds[$k]; |
| if($this->fdd[$field]['values']['db']) { |
if($this->fdd[$field]['values']['db']) { |
|
|
| $id = $this->fdd[$field]['values']['column']; |
$id = $this->fdd[$field]['values']['column']; |
| $desc = $this->fdd[$field]['values']['description']; |
$desc = $this->fdd[$field]['values']['description']; |
| if ($desc != '' && $id != '') { |
if ($desc != '' && $id != '') { |
| $alias = 'JoinTable'.$k; |
$alias = 'PMEjoin'.$k; |
| if (!in_array($alias,$tbs)) { |
if (!in_array($alias,$tbs)) { |
| $join .= |
$join .= " LEFT OUTER JOIN $db.$table AS $alias"; |
| " LEFT OUTER JOIN $db.". |
$join .= " ON $alias.$id = PMEtable0.$field"; |
| $table. |
|
| ' AS '.$alias. |
|
| ' ON '.$alias. |
|
| '.'.$id. |
|
| '='.'Table0.'.$field; |
|
| $tbs[]=$alias; |
$tbs[]=$alias; |
| } |
} |
| } |
} |