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();
$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();
$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
#
# 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]);
}
+ */
}
#
}
if ($this->buttons() and DB_HTML_DELETE) $html .= '<th class="delete"></th>'.NB_EOL;
$html .= '</tr>'.NB_EOL;
-
- // Filters - beta
- /*
- if (0) {
- $html .= '<tr class="head">'.NB_EOL;
- if ($this->buttons() and DB_HTML_EDIT) $html .= '<th class="edit"></th>'.NB_EOL;
- foreach ($fields as $name => $f) {
- $html .= '<th class="'.$name.($f->key?' key':'').'">'
- . (preg_match('/^\w/',$name) ? '<input type="text" id="t-'.$name.'" name="'.$name.'" value="'.$name.$f->p($name).'" />' : '')
- .'</th>'.NB_EOL;
- }
- if ($this->buttons() and DB_HTML_DELETE) $html .= '<th class="delete"></th>'.NB_EOL;
- $html .= '</tr>'.NB_EOL;
- }
- */
-
$html .= '</thead>'.NB_EOL;
}