--- phpMyEdit.class.php.orig Thu Mar 10 02:42:34 2005 +++ phpMyEdit.class.php Thu Mar 10 02:44:17 2005 @@ -350,6 +350,8 @@ $desc = &$this->fdd[$field_num]['values']['description']; isset($db) || $db = $this->db; $qparts['type'] = 'select'; + $qparts['from'] = "$db.$table"; + $qparts['where'] = $this->fdd[$field_num]['values']['filters']; if ($table) { $qparts['select'] = 'DISTINCT '.$table.'.'.$key; if ($desc && is_array($desc) && is_array($desc['columns'])) { @@ -360,7 +362,17 @@ } foreach ($desc['columns'] as $key => $val) { if ($val) { - $qparts['select'] .= $val; +// ben hack - http://platon.sk/forum/projects/viewtopic.php?t=103 + if ($desc['values'][$key]) { + $qparts['select'] .= $desc['values'][$key]['table'] . '.' . $desc['values'][$key]['columns']; + $qparts['from'] .= ", $db." . $desc['values'][$key]['table']; + if ($qparts['where'] != '') + $qparts['where'] .= ' AND '; + $qparts['where'] .= "$table.$val = " . $desc['values'][$key]['table'] . '.' . $desc['values'][$key]['column']; + } + else + $qparts['select'] .= $val . ""; +// end ben hack if ($desc['divs'][$key]) { $qparts['select'] .= ',"'.addslashes($desc['divs'][$key]).'"'; } @@ -380,8 +392,8 @@ $qparts['orderby'] = $key; } //$qparts['from'] = "$db.$table.$sel; - $qparts['from'] = "$db.$table"; - $qparts['where'] = $this->fdd[$field_num]['values']['filters']; + //$qparts['from'] = "$db.$table"; + //$qparts['where'] = $this->fdd[$field_num]['values']['filters']; if ($this->fdd[$field_num]['values']['orderby']) { $qparts['orderby'] = $this->fdd[$field_num]['values']['orderby']; } @@ -422,7 +434,16 @@ } foreach ($desc['columns'] as $key => $val) { if ($val) { - $ret .= 'PMEjoin'.$field.'.'.$val; +// ben hack - http://platon.sk/forum/projects/viewtopic.php?t=103 + /* to ensure we get a unique table aliase name, add + the current alias number to the total fields. */ + if ($desc['values'][$key]) { + $ret .= 'PMEjoin'.(sizeof($this->fds)+$field).'.'.$desc['values'][$key]['columns']; + } + else { + $ret .= 'PMEjoin'.$field.'.'.$val; +} +// end ben hack if ($desc['divs'][$key]) { $ret .= ',"'.addslashes($desc['divs'][$key]).'"'; } @@ -534,6 +555,13 @@ $join .= " ON $alias.$id = PMEtable0.$field"; $tbs[]=$alias; } +// ben hack - http://platon.sk/forum/projects/viewtopic.php?t=103 + if (is_array($desc['values'])) { + $alias_new = 'PMEjoin'.(sizeof($this->fds)+$k); + $join .= " LEFT JOIN $db." . $desc['values'][0]['table'] . " AS $alias_new"; + $join .= " ON $alias_new." . $desc['values'][0]['column'] . " = $alias." . $desc['columns'][0]; + } +// end ben hack } } return $join;