From 49d444265d5ac47ba853b329550736edae80d72f Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Tue, 26 Jul 2016 15:05:23 +0100 Subject: [PATCH] str_match --- lib/php/db/table.php | 10 ++++++++-- lib/php/nb.php | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) 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)) { -- 2.47.3