The branch, master has been updated via dbd83fa123f951fce7795ca38bb117b64a5c2aaf (commit) from 775d2ce26417a2c52b42f719a0dbccc3e63e468b (commit)
- Log ----------------------------------------------------------------- commit dbd83fa123f951fce7795ca38bb117b64a5c2aaf Author: Martynas Mickevičius BlinK_@users.sourceforge.net Date: Mon Mar 29 17:26:27 2010 -0400
Patch #2975533 New search operators
-----------------------------------------------------------------------
Summary of changes: ChangeLog | 2 ++ libraries/config.default.php | 10 +++++++++- tbl_select.php | 18 +++++++++++++++++- 3 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 51febbb..6fe706b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -53,6 +53,8 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA to Pavel Konnikov and Herman van Rink + patch #2974341 [structure] Clicking on table name in db Structure should Browse the table if possible, thanks to bhdouglass - dougboybhd ++ patch #2975533 [search] New search operators, thanks to + Martynas Mickevičius
3.3.2.0 (not yet released) - patch #2969449 [core] Name for MERGE engine varies depending on the diff --git a/libraries/config.default.php b/libraries/config.default.php index 35f603d..1aa1348 100644 --- a/libraries/config.default.php +++ b/libraries/config.default.php @@ -2990,6 +2990,10 @@ $cfg['NumOperators'] = array( '!=', 'LIKE', 'NOT LIKE', + 'IN (...)', + 'NOT IN (...)', + 'BETWEEN', + 'NOT BETWEEN', );
/** @@ -3007,7 +3011,11 @@ $cfg['TextOperators'] = array( 'REGEXP ^...$', 'NOT REGEXP', "= ''", - "!= ''" + "!= ''", + 'IN (...)', + 'NOT IN (...)', + 'BETWEEN', + 'NOT BETWEEN', );
/** diff --git a/tbl_select.php b/tbl_select.php index 874502e..0fbd24c 100644 --- a/tbl_select.php +++ b/tbl_select.php @@ -408,7 +408,23 @@ else { $func_type = 'REGEXP'; $fields[$i] = '^' . $fields[$i] . '$'; } - $w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' ' . $quot . PMA_sqlAddslashes($fields[$i]) . $quot; + + if ($func_type == 'IN (...)' || $func_type == 'NOT IN (...)' || $func_type == 'BETWEEN' || $func_type == 'NOT BETWEEN') { + $func_type = str_replace(' (...)', '', $func_type); + + // quote values one by one + $values = explode(',', $fields[$i]); + foreach ($values as &$value) + $value = $quot . PMA_sqlAddslashes(trim($value)) . $quot; + + if ($func_type == 'BETWEEN' || $func_type == 'NOT BETWEEN') + $w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' ' . (isset($values[0]) ? $values[0] : '') . ' AND ' . (isset($values[1]) ? $values[1] : ''); + else + $w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' (' . implode(',', $values) . ')'; + } + else { + $w[] = PMA_backquote($names[$i]) . ' ' . $func_type . ' ' . $quot . PMA_sqlAddslashes($fields[$i]) . $quot;; + }
} // end if } // end for
hooks/post-receive