Aller au contenu
WebFrance

Rejoignez WebFrance (Cadeau : Le Guide 2018 pour rentabiliser un site)

Rejoindre WebFrance

Connexion  
spacemarmotte

URL Rewrite, Manipulation de LIKE et accents

Messages recommandés

Bonjour à tous...

j'ai un souci de résultats de requêtes ... il y a une subtilité de LIKE qui doit m'échapper !

dans ma bdd, j'ai des "Série 3", des "Grand Scénic" ... etc

pour url rewrite, j'ai viré les accents et remplacé les espaces par des underscores... ce qui me donne des urls du style .../grand_scenic.html

les underscores remplacent toujours des espaces .. donc pas de problème pour les re-modifier avant ma requête

par contre, tous les "e" ne sont pas des "é" ... donc je ne peux les rétablir avant la requête !

résultats, si je fais ma requête de cette façon:

$rq = "SELECT * FROM base_vo WHERE modele LIKE '%$mod%' ORDER BY prix";

ma requête ne me renvoie pas de résultats !!

Elle fonctionne parfaitement pour les autres modèles à mot unique (Clio, X3...) de même que pour les modèles à espaces (Kangoo Express par ex.) mais dés qu'il y a un accent .... niet !!

j'ai essayé de laisser les accents dans les url et de les inclure dans mes rewriterules (a-zA-Z\+\_\é\&eamp...) sans succès ! (ou je l'ai mal formulé)

l'un d'entre vous aurait une idée pour solutionner le problème ??

Merci pour vos lumières

Eric

EDIT: dans la base les é apparaissent en é

Modifié par spacemarmotte

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

>> Nouveau : Découvrez la marketplace d'Achat / Vente de Sites !

Est-ce que tu ne peux pas configurer ta DB pour que "LIKE 'hehehe'" te ressorte les "hehehe" ET les "héhéhé".

Il me semble que me DB fonctionnent toutes ainsi...

Je viens de tester sur une eptite DB de mon côté via php my admin et voici un truc qui purra t'être utile.

Pour trouver "Remi" et "Rémi", PHPmyadmin fait

WHERE `prenom` LIKE CONVERT( _utf8 'Remi' USING latin1 )

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

pas moyen ...

j'ai essayé plusieurs combinaisons .. j'ai une erreur sql !

ma BDD est en iso-8859-1, du coup, mes é sont des é dans la base... je ne sais pas si ça a son importance.

en bricolant, pour test, un

$mod = str_replace('vel','vél',str_replace('sce','scé',str_replace('se','sé',str_replace('...

ça va bien me chercher mes Scénic, mes rie 1, mes Vél Satis ... mais c'est vraiment du bricolage !!

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

La solution qui consisterai à stocker l'url en DB me semble la meilleure.

Un peu à la manière de WP, tu crée un "slug" unique pour chaque modèle et tu le stocke dans la DB. Tu retrouve ton entrée à partir de l'url en récuperant juste le "slug".

Sinon, as tu essayé

WHERE modele LIKE CONVERT('%$mod%' USING utf_8 )

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

Sinon, as tu essayé

WHERE modele LIKE CONVERT('%$mod%' USING utf_8 )

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ... on line 17

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ... on line 19

l'idée de l'url dans la db est a creuser ... bien que je ne connaisse pas l'expression SLUG !!

je vais creuser dans ce sens (sauf si le bout de code de Him est magique ;-)

Eric

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

oui j'ai un bout de code magique qui convertis les é, les è, etc... et qui les remet après !

mais je sais pas pkoi je ne trouve plus les accès au serveur du site en question :-)

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

          $phras = $resultat["cat_name"];

          $masqu = array("."," - "," & ","&","'",",","(",")","À","Á","Â","Ã","Ä","Å","à","á","â","ã","ä","å","Ò","Ó","Ô","Õ","Ö","Ø","ò","ó","ô","õ","ö","ø","È","É","Ê","Ë","è","é","ê","ë","Ç","ç","Ì","Í","Î","Ï","ì","í","î","ï","Ù","Ú","Û","Ü","ù","ú","û","ü","ÿ","Ñ","ñ"," ","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");

          $ok_masqu = array("","-","-","-","-","-","","","a","a","a","a","a","a","a","a","a","a","a","a","o","o","o","o","o","o","o","o","o","o","o","o","e","e","e","e","e","e","e","e","c","c","i","i","i","i","i","i","i","i","u","u","u","u","u","u","u","u","y","n","n","-","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");

          $newphras = str_replace($masqu, $ok_masqu, $phras);

à remettre dans l'autre sens après.

mais préfère quand même une solution "url en base de donnée" :-)

et prévois toujours un "identifiant" pour chaque url.

"bddslug-id.html"

ce qui te permettra de tester l'url, et en cas d'erreur rediriger en 301 vers l'url valide.

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

A voir l'erreur SQL, je me plante dans le "utf_8"... essaye peut-être "utf8" sans le _

le terme slug c'est juste que c'est comme ca que ca s'appelle dans Wordpress... mais en fait, on s'en fout du terme. Tu l'appelle comme tu veux. Le concept, c'est davoir un identifiant unique qui puisse à la fois servir à retrouver ton item et s'afficher dans une url qui sera jolies et plus sympa pour le SEO.

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

ça me parait effectivement la meilleure solution...

je vais modifier mon code pour que la table de correspondance des modèles sans accents et avec se peuple lors de l'entrée.

après je n'aurai plus qu'a piocher dedans !

merci pour l'aide ;-)

Partager ce message


Lien à poster
Partager sur d’autres sites
Partagez cette page :

Ajouter un commentaire :

-

Créer un compte

en 3 secondes

INSCRIPTION

Se connecter

ici

CONNEXION
Connexion  

Partagez cette page :



© WebFrance 2018 - Contact - Annonceurs - Conditions générales

×

Nouveau : Marketplace WebFrance

2.png

Vente de sites internet, domaines, applications...