résultat de variable identique mais qui ne fonctionne pas dans une requete sql après un regex ?
Posté : 18 avr. 2017, 20:31
Bonjour, je suis en train de faire un bouton rechercher mais je rencontre une difficulté. Voici mon code :
Par contre si j'utilise le terme "bouteille a la mer" pourtant normalisé par une regex afin de le transformer en "bouteille mer", cela ne donne aucun résultat alors qu'il s'agit exactement du même contenu de variable.
J'ai dabord pensé à un caractèe invisible et j'ai donc ajouter un trim() sur ma variable mais c'est la même chose. Impossible de trouver le problème.
Pouvez-vous m'aider svp ?
$recherche = "bouteille mer";
$recherche = preg_replace("#[0-9]|\b€\b|\bvotre\b|\bnom\b|\bgr\b|\bmm\b|\bcm\b|\bkg\b|\b, \b|\b ,\b|\bson\b|\bsa\b|\bce\b|\bse\b|\bses\b|\bfaire\b|\bces\b|\bpour\b|\bun\b|\bune\b|\ba\b|\ble\b|\bla\b|\bles\b|\bde\b|\bdes\b|\bque\b|\bqui\b|\bd\b|\bj\b|\bl\b|\bm\b|\bn\b|\bs\b|\bt\b|\bperson{1,}alis(able|ees|er|ez|es|ee|e)\b|\brecherch(ez|er|e)\b|\bcadeau(|x)\b#", " ", $recherche);
$recherche = trim($recherche);
$articles_sql = $bdd->prepare("
SELECT id, titre, url, ancien_prix, prix, image, date, supports, choix_supports
FROM cadeauxplaisir_articles
WHERE keywords LIKE :keywords
AND afficher = :afficher
ORDER BY ordre
LIMIT 0,100
");
$articles_sql->execute(array(
'keywords' => '%' . $recherche . '%',
'afficher' => 1
));
$articles_sql->setFetchMode(PDO::FETCH_ASSOC);
while( $articles = $articles_sql->fetch() ) {
include("/includes/boite_articles.php");
}
lorsque j'utilise le terme "bouteille mer", ma requête trouve bien un résultat.Par contre si j'utilise le terme "bouteille a la mer" pourtant normalisé par une regex afin de le transformer en "bouteille mer", cela ne donne aucun résultat alors qu'il s'agit exactement du même contenu de variable.
J'ai dabord pensé à un caractèe invisible et j'ai donc ajouter un trim() sur ma variable mais c'est la même chose. Impossible de trouver le problème.
Pouvez-vous m'aider svp ?