From: Nicolas Boisselier Date: Tue, 26 Jul 2016 14:05:23 +0000 (+0100) Subject: str_match X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=49d444265d5ac47ba853b329550736edae80d72f;p=nb.git str_match --- diff --git a/lib/php/db/table.php b/lib/php/db/table.php index 5396f566..edcc861f 100644 --- a/lib/php/db/table.php +++ b/lib/php/db/table.php @@ -546,6 +546,12 @@ Class Table extends nb { $not = strpos($v,'!')===0 ? 1 : 0; if ($not) $v = substr($v,1); + // Superior / Inferior + if (preg_match('/^(<|>|<=|>=)/',$v,$m)) { + $v = substr($v,strlen($m[1])); + $equal = $m[1]; + } + // Regex if (strpos($v,'~')===0) { $v = substr($v,1); @@ -567,7 +573,7 @@ Class Table extends nb { if (preg_match('/[_%]/',$v)) { $equal = ' '.($not ? 'NOT ' : '').'LIKE '; } else { - $equal = ($not ? '<> ' : '='); + $equal = ($not ? '<> ' : $equal); } // Others @@ -582,7 +588,7 @@ Class Table extends nb { $v = $this->db()->quote($v); } - $equal = $not ? '<>' : '='; + $equal = $not ? '<>' : $equal; } diff --git a/lib/php/nb.php b/lib/php/nb.php index fef5f436..628a280c 100644 --- a/lib/php/nb.php +++ b/lib/php/nb.php @@ -542,6 +542,22 @@ class NB { $pattern = substr($pattern,1); $match = preg_match('@'.str_replace('@','\@',$pattern).'@i',$string); + // Superior + } elseif (strpos($pattern,'>')===0) { + $pattern = substr($pattern,1); + $match = ($string > $pattern); + } elseif (strpos($pattern,'>=')===0) { + $pattern = substr($pattern,2); + $match = ($string >= $pattern); + + // Inferior + } elseif (strpos($pattern,'<')===0) { + $pattern = substr($pattern,1); + $match = ($string < $pattern); + } elseif (strpos($pattern,'<=')===0) { + $pattern = substr($pattern,2); + $match = ($string <= $pattern); + // Match } elseif(preg_match('/['.preg_quote('*?[]!').']/',$pattern)) {