while style recorrer entre diferencia php mysql jquery-datatables

php - style - recorrer fetchall



Cómo se establece Y condiciona TODAS las columnas-php (2)

Esto es un poco largo para un comentario.

Para este tipo de búsqueda, puede considerar un índice de texto completo. La documentación está aquí . Estos implementan el MATCH . . . AGAINST MATCH . . . AGAINST MATCH . . . AGAINST funcionalidad.

Con tal funcionalidad, puede ordenar los resultados por relevancia. Esto significa que no tiene que decidir de antemano si el conector es "y" o "o" entre varias palabras. También puede implementar una búsqueda booleana, que permitiría una lógica compleja más compleja, si así lo desea.

En MY TABLE si escribo

floor fly

la tabla No matching records devuelve No matching records porque los No matching records búsqueda de funciones de búsqueda global php están dentro de una sola columna.
Pero quiero que esa condición Y funcione para TODAS las columnas.

Si escribo floor fly table debería mostrar algo como:

|__Column1___|___Column2____|__Column4_| | | | | |..FLOOR... |DREAMS - FLY | 1994 | | ..dreams | xyz | floor |

Atención: esta no es una función abc OR cde
Este es mi código php pero AND no funciona como esperaba:

static function filter ( $request, $columns, &$bindings ) { $globalSearch = array(); $columnSearch = array(); $dtColumns = self::pluck( $columns, ''dt'' ); if ( isset($request[''search'']) && $request[''search''][''value''] != '''' ) { $str = $request[''search''][''value'']; for ( $i=0, $ien=count($request[''columns'']) ; $i<$ien ; $i++ ) { $requestColumn = $request[''columns''][$i]; $columnIdx = array_search( $requestColumn[''data''], $dtColumns ); $column = $columns[ $columnIdx ]; if ( $requestColumn[''searchable''] == ''true'' ) { $binding = self::bind( $bindings, ''%''.$str.''%'', PDO::PARAM_STR ); $globalSearch[] = "".$column[''db'']." LIKE ".$binding; } } }

Para disipar cualquier duda sobre lo que quiero: MIRAR

Esta es una imagen de ejemplo de eso quiero


bien, debes decidir qué criterios de búsqueda quieres usar. Si desea utilizar coincidencias con ciertas frases y no desea utilizar la búsqueda FULL TEXT, debe reconstruir su consulta como:

SELECT * FROM a WHERE a.col1 REGEXP ''text1|text2|text3'' OR a.col2 REGEXP ''text1|text2|text3'';

En su código PHP, debería ser así de simple (no especificó el formato de datos de entrada, así que supongo que está usando "$ str" como texto separado por espacios, y quiere verificar todas las palabras en la frase "$ str" para buscar :

if ( $requestColumn[''searchable''] == ''true'' ) { $str = str_replace(" ","|",$str); $binding = self::bind( $bindings, $str, PDO::PARAM_STR ); $globalSearch[] = "".$column[''db'']." REGEXP ".$binding; }