Advertisement
dropbox1349

Multiple Word Matching using OR condition - PHP

Apr 16th, 2015
538
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.51 KB | None | 0 0
  1. Original Code:
  2.  
  3. static function filter ( $request, $columns, &$bindings )
  4.     {
  5.         $globalSearch = array();
  6.         $columnSearch = array();
  7.         $dtColumns = self::pluck( $columns, 'dt' );
  8.  
  9.         if ( isset($request['search']) && $request['search']['value'] != '' ) {
  10.             $str = $request['search']['value'];
  11.  
  12.             for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
  13.                 $requestColumn = $request['columns'][$i];
  14.                 $columnIdx = array_search( $requestColumn['data'], $dtColumns );
  15.                 $column = $columns[ $columnIdx ];
  16.  
  17.                 if ( $requestColumn['searchable'] == 'true' ) {
  18.                     $binding = self::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR );
  19.                     $globalSearch[] = "`".$column['db']."` LIKE ".$binding;
  20.                 }
  21.             }
  22.         }
  23.  
  24. Changed Code:
  25.  
  26. static function filter ( $request, $columns, &$bindings )
  27.     {
  28.         $globalSearch = array();
  29.         $columnSearch = array();
  30.         $dtColumns = self::pluck( $columns, 'dt' );
  31.  
  32.         if ( isset($request['search']) && $request['search']['value'] != '' ) {
  33.             $str = $request['search']['value'];
  34.  
  35.             for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
  36.                 $requestColumn = $request['columns'][$i];
  37.                 $columnIdx = array_search( $requestColumn['data'], $dtColumns );
  38.                 $column = $columns[ $columnIdx ];
  39.  
  40.                 if ( $requestColumn['searchable'] == 'true' )
  41.                 $strArray = explode(' ',$str);
  42.                 foreach ($strArray as $str)
  43.                 {
  44.                     $binding = self::bind( $bindings, '%'.$str.'%', PDO::PARAM_STR );
  45.                     $globalSearch[] = "`".$column['db']."` LIKE ".$binding;
  46.                 }
  47.             }
  48.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement