Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2007, 09h02   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2003
Messages : 42
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 42
Points : 13
Points : 13
Par défaut [SQL] Problemes formulaire de recherche

Bonjour à tous,

Voila je bosse donc sur l'intranet de ma société et on se demandais la meilleur facon de pouvoir faire une recherche dans une base de données.

Actuellement, si on recherche par exemple "bidon-domi" ben il vaut mieux taper "bidon-domi" ou "bidon" ou "bid" car on recherche avec un like mais on regarde l'orthographe parfaite.

Ici on me demande de changer cela pour que si on recherche "bodé-jean joseph" que si on tape "bodé" ou "jean" ou "bodé jean"

Mes questions :
- Y a t il une fonction en php qui enleve les caractères de type accentué, tirer, ...

- Lorsqu'on a le champ taper par l'utilisateur et le champ dans la db vaut il mieux faire cette conversion lors de la comparaison (if) ou alors vaut il mieux stocké du coté de la base de données le champ (nom par exemple) dans un autre champ ou nous avons retirer les caractères spéciaux?

J'espere que je me fait bien comprendre.

Merci d'avance
arsenik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 17h29   #2
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Citation:
Envoyé par arsenik
- Y a t il une fonction en php qui enleve les caractères de type accentué, tirer, .
preg_replace, str_replace

Citation:
- Lorsqu'on a le champ taper par l'utilisateur et le champ dans la db vaut il mieux faire cette conversion lors de la comparaison (if) ou alors vaut il mieux stocké du coté de la base de données le champ (nom par exemple) dans un autre champ ou nous avons retirer les caractères spéciaux?
Pas compris.


Sinon pour comparer 2 chaine il y a la fonction levenshtein qui marche assez bien.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2007, 10h22   #3
Invité de passage
 
Inscription : juin 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 4
Points : 4
Points : 4
Citation:
Envoyé par arsenik
- Lorsqu'on a le champ taper par l'utilisateur et le champ dans la db vaut il mieux faire cette conversion lors de la comparaison (if) ou alors vaut il mieux stocké du coté de la base de données le champ (nom par exemple) dans un autre champ ou nous avons retirer les caractères spéciaux?
Bonjour,

le plus simple n'est pas de faire une conversion au niveau du code php, mais directement dans la bdd. Il suffit pour cela d'avoir une base insensible a la casse et aux caracteres accentues. Si cela n'a pas ete fait a la creation de la base, de la table, ou de la colonne, il est possible de changer la collation lors d'une requete SQL. Par exemple pour MySQL:
http://dev.mysql.com/doc/refman/5.0/...t-collate.html

Il suffit alors d'utiliser un jeu de caractere correspondant a tes besoins. Par exemple latin1_general_ci_ai (ci pour case insensitive et ai pour accent insensitive).
orbitz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h07.


 
 
 
 
Partenaires

Hébergement Web