Salve ho un serio problema con questa parte di codice che ha il compito di cercare informazioni all'interno del sito
Genera qualche errore che invalida la ricerca e restituisce più risultati di quelli dovuti inserendo anche cose che non centrano
PHP:
if ($direct_fields) {
switch ($mode) {
case 1:
$direct_sub_sql = "(CONCAT_WS(' ', `T1`.`" . implode("`, `T1`.`", $direct_fields) . "`) RLIKE '" . implode("?|", $query_exploded) . "?') ";
if ($query_count > 1) {
foreach ($query_exploded as $query_exploded_item) {
$direct_sub_select_sql .= ", SUM(IF(CONCAT_WS(' ', `T1`.`" . implode("`, `T1`.`", $direct_fields) . "`) RLIKE '{$query_exploded_item}?', 1, 0)) AS `{$query_exploded_item}` ";
}
}
$direct_concat_sign = 'AND';
break;
case 2:
$direct_sub_sql = "(CONCAT_WS(' ', `T1`.`" . implode("`, `T1`.`", $direct_fields) . "`) RLIKE '" . implode("?|", $query_exploded) . "?') ";
$direct_concat_sign = 'OR';
break;
case 3;
$direct_sub_sql = "CONCAT_WS(' ', `T1`.`" . implode("`, `T1`.`", $direct_fields) . "`) LIKE '%{$query}%' ";
$direct_concat_sign = 'AND';
break;
}
if ($direct_sub_sql && $this->searchTest($direct_sub_sql, $type, $direct_sub_select_sql)) {
$sub_sql .= "(";
$sub_sql .= $direct_sub_sql;
$sub_sql .= ")";
} else {
unset($direct_concat_sign);
}
}
Ultima modifica: