365,9 → 365,10 |
} |
if(!empty($p['masque.tag'])) { |
// i_mots_cles_texte provient de la VIEW v_del_image |
$req['where'][] = sprintf('CONCAT(%s) REGEXP %s', |
// TODO: remove LOWER() lorsqu'on est sur que les tags sont uniformés en minuscule |
$req['where'][] = sprintf('LOWER(CONCAT(%s)) REGEXP %s', |
self::sqlAddIfNullPourConcat(array('vdi.mots_cles_texte', 'vdi.i_mots_cles_texte')), |
$db->proteger($p['masque.tag'])); |
$db->proteger(strtolower($p['masque.tag']))); |
} |
|
if(!empty($p['masque.type'])) { |
436,19 → 437,27 |
$champs_p = array('du.nom', // idem pour le nom |
'vdi.nom_utilisateur', |
/* 'vdi.i_nom_utilisateur' */ ); |
|
/* |
Note: pour l'heure, étant donnés: |
- les CONVERT() de la VIEW del_utilisateur |
- DEFAULT CHARSET=latin1 pour tela_prod_v4.annuaire_tela |
- DEFAULT CHARSET=utf8 pour tb_cel.cel_obs |
et l'âge du capitaine... |
- REGEXP est case-sensitive, et collate les caractères accentués |
- LIKE est case-insensitive, et collate les caractères accentués |
*/ |
if(! $b) { |
$where[] = sprintf('CONCAT(%s) REGEXP %s', |
self::sqlAddIfNullPourConcat($champs_n). |
',' . |
$where[] = sprintf('CONCAT(%s,%s) LIKE %s', |
self::sqlAddIfNullPourConcat($champs_n), |
self::sqlAddIfNullPourConcat($champs_p), |
$db->proteger($val)); |
$db->proteger("%".$val."%")); |
} |
else { |
$where[] = sprintf('CONCAT(%1$s) REGEXP %2$s AND CONCAT(%1$s) REGEXP %3$s ', |
self::sqlAddIfNullPourConcat($champs_n). |
',' . |
$where[] = sprintf('CONCAT(%1$s,%2$s) LIKE %3$s AND CONCAT(%1$s,%2$s) LIKE %4$s ', |
self::sqlAddIfNullPourConcat($champs_n), |
self::sqlAddIfNullPourConcat($champs_p), |
$db->proteger($a), $db->proteger($b)); |
$db->proteger("%" . $a . "%"), $db->proteger("%" . $b . "%")); |
} |
} |
|