From 53fdd0d15cab90ac2b7a3e7447c8adcf8de11870 Mon Sep 17 00:00:00 2001 From: Devops Date: Mon, 15 May 2017 17:11:24 +0100 Subject: [PATCH] lib/php/db/table.php --- lib/php/db/table.php | 80 +++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 41 deletions(-) diff --git a/lib/php/db/table.php b/lib/php/db/table.php index 47fc2972..d720fb84 100644 --- a/lib/php/db/table.php +++ b/lib/php/db/table.php @@ -853,8 +853,10 @@ Class Table extends nb { foreach ($this->fields() as $f) { if (empty($f->extra)) $select_fields[] = $f->sql_name(); } + } else { $select_fields = ['*']; + } $sql = "SELECT ".trim( $select_count[0].' '.join(',',$select_fields) ). $this->select_extras(); @@ -966,7 +968,36 @@ Class Table extends nb { $opt['TABLE'] = $this; # - # Run query + # Fields + # + if (!DB_TABLE_QUERY_NAME) { + $fields = []; + foreach ($this->db()->fields($st) as $f) { $fields[$f->name] = $f; } + $this->fields = $fields; + } + + # + # Fields filter + # + $fields = $this->fields(); + $fields_filter = []; + if ($this->p('rows_fields')) { + $fields_filter = preg_split('/[^\w_]/',$this->p('rows_fields')); + $new_fields = []; + foreach ($fields_filter as $k) { + $new_fields[$k] = $fields[$k]; + } + $fields = $new_fields; + unset($new_fields); + /* + foreach ($fields as $k => $field) { + if (!in_array($k,$fields_filter) and !isset($this->extras[$k])) unset($fields[$k]); + } + */ + } + + # + # Build query # $this->create_temporary(); @@ -990,30 +1021,6 @@ Class Table extends nb { $st->execute(); if (!empty($opt['query'])) return $st; - # - # Fields - # - if (!DB_TABLE_QUERY_NAME) { - $fields = []; - foreach ($this->db()->fields($st) as $f) { $fields[$f->name] = $f; } - $this->fields = $fields; - } - - # - # Fields filter - # - $fields = $this->fields(); - $fields_filter = []; - #die($this->p('rows_fields')); - #die($this->p('rows_fields')); - #bye($this->p()); - if ($this->p('rows_fields')) { - $fields_filter = preg_split('/[^\w_]/',$this->p('rows_fields')); - foreach ($fields as $k => $field) { - if (!in_array($k,$fields_filter) and !isset($this->extras[$k])) unset($fields[$k]); - } - } - # # Use the module out when format unknow # @@ -1075,9 +1082,16 @@ Class Table extends nb { # Fields filter # if ($fields_filter) { + $new_row = []; + foreach ($fields_filter as $k) { + if (isset($row[$k])) $new_row[$k] = $row[$k]; + } + $row = $new_row; + /* foreach (array_keys($row) as $k) { if (!in_array($k,$fields_filter)) unset($row[$k]); } + */ } # @@ -1439,22 +1453,6 @@ Class Table extends nb { } if ($this->buttons() and DB_HTML_DELETE) $html .= ''.NB_EOL; $html .= ''.NB_EOL; - - // Filters - beta - /* - if (0) { - $html .= ''.NB_EOL; - if ($this->buttons() and DB_HTML_EDIT) $html .= ''.NB_EOL; - foreach ($fields as $name => $f) { - $html .= '' - . (preg_match('/^\w/',$name) ? '' : '') - .''.NB_EOL; - } - if ($this->buttons() and DB_HTML_DELETE) $html .= ''.NB_EOL; - $html .= ''.NB_EOL; - } - */ - $html .= ''.NB_EOL; } -- 2.47.3