if ($add and !preg_match('/^(null)?$/',$field->default)) $row[$name] = $field->default;
elseif(!isset($row[$name])) $row[$name] = '';
echo $field->html_edit($row[$name]
-# NB 18.08.15 (! $add and array_key_exists($name,$row) ) ? $row[$name] : $field->default
- #,( $orig[$name] === $row[$name] ? '' : 'password' )
);
}
// Text
} elseif (preg_match('/text|char|blob/',$field->type)
- or !preg_match('/^\d+(\.\d*)?$/',$v) # text criteria value
+ or ($v!='null' and !preg_match('/^\d+(\.\d*)?$/',$v)) # text criteria value
) {
if (strtolower($v)=='null') $v = '';
// Integer
if ($number) {
if (strtolower($v)=='null') $v = '0';
+ #$k = "COLAESCE($k,0)";
// Date, Time
} else {
}
- if (preg_match("/(LIKE|$regexp) ..$/","$equal$v")) {
- $k = "COALESCE($k,".$this->db()->quote('').")";
+ if (preg_match("/(LIKE|$regexp) ..$/","$equal$v") and $field->null) {
+# NB 20.12.16 $k = "COALESCE($k,".$this->db()->quote('').")";
+ $k = 'COALESCE('.$field->sql_name().','.$this->db()->quote('').")";
+ } elseif ($field->extras) {
+ $k = $this->extras[$k]->sql_name();
+
+ } elseif ($number and $field->null) {
+ $k = 'COALESCE('.$field->sql_name().",0)";
+ } elseif (!$number and $field->null) {
+ $k = 'COALESCE('.$field->sql_name().",'')";
+ } else {
+ $k = $field->sql_name();
+
}
# having, denorm, EMPTY
+ /*
$extra_where = (string)$this->db()->conf_type('extra_where');
if ($extra_where == 'having' and $field->extras) {
$having[] = $this->extras[$k]->sql_name()."$equal$v";
} elseif ($field->extras) {
$where[] = $this->extras[$k]->sql_name()."$equal$v";
+
} else {
$where[] = $field->sql_name()."$equal$v";
}
+ */
+
+ if ($field->extras) {
+ $extra_where = (string)$this->db()->conf_type('extra_where');
+ if ($extra_where == 'having') {
+ $having[] = $k->sql_name()."$equal$v";
+ } else {
+ $where[] = $k->sql_name()."$equal$v";
+ }
+ } else {
+ $where[] = "$k$equal$v";
+ }
} #foreach fields