PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 21-08-2009 16:58:43

stefane321
Membre
Inscription : 21-08-2009
Messages : 2

requete de recherche avec LIKE

Bonjour,

j'ai besoin de votre aide pour une requete de recherche

Je dois faire un petit formulaire sur le site dune entreprise d'autobus scolaire

Les parents des élèves y inscriront dans un champ le nom de l'élève et en cliquant envoyer la requete affichera l'heure et le lieu d'embarquement de l'élève

Les donnée proviennent de la direction scolaire dans un fichier excel que jai importer

mon problème est que ma requete fonctionne que si jinscrie le nom de l'élève comme il est dans la bd

1- voici ma requete:

$sql=mysql_query("select * from horaire_bus where nom_eleve LIKE '%".$_POST["nom_eleve"]."%' ") or die("Impossible d'ouvrir la table");
while ($category=mysql_fetch_array($sql))
{
  echo "<P>".$category["nom_eleve"]."</P>";
}

dans la bd le nom et le prénom sont dans le même champ ... séparé par une virgule

example;

Duval, Mireille
Duval, Jean-Michel
Duchesne, Sindy
Dallaire Yohan
Larochelle, Laurence
Boutin, Jérémie

Comment puis-je faire en sorte  que peu importe que l'utilisateur tape: Duval, Mireille ou Duval Mireille ou duval mireille ou Mireille Duval ou mireille duval

Merci!

Hors ligne

#2 21-08-2009 17:04:47

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : requete de recherche avec LIKE

Salut,

Tu peux utiliser une recherche texte intégral (Full-text).
Ici la doc


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#3 21-08-2009 21:12:59

morgan47
Membre
Inscription : 19-08-2009
Messages : 52

Re : requete de recherche avec LIKE

Je vais essayé un truc, si tu a 2 variable distinct pour le nom et le prenom, sinon un explode pour en avoir 2 :
1 - On passe toutes les valeurs en minuscule
2 - On passe la première lettre du nom et prenom en majuscule
3 - where nom_eleve LIKE '%".$_POST["nom_eleve"]."%' " AND nom_eleve LIKE '%".$_POST["prenom_eleve"]."%' "

Hors ligne

#4 21-08-2009 21:35:05

stefane321
Membre
Inscription : 21-08-2009
Messages : 2

Re : requete de recherche avec LIKE

J'ai fais comme mcallan ma suggéré

avec fulltext et mach sa fonctionne au niveau du champ nom_eleve  ..... sauf que si je recherche laurie gagnon .... sa me sort aussi tout les autres personne qui ont le nom gagnon

jai donc mis un filtre WHERE en utilisant le numéro de téléphone

J'ai maintenant un résultat unique

Maintenant, jai besoin d'aide pour finaliser .cela dans le sens que ....

au Québec la conventionpour écrire les numéro de téléphone est comme ceci 275-5874

la requete fonctionne avec 275-5874 ou 275 5874

maintenant, il est clait pour moi que plusieurs personnes prendront le racourci d'écrire tout ça collé comme 2755874

Comment puis-je réglé ça?

Voici mon code:

$sql=mysql_query("SELECT * FROM horaire_bus2 WHERE MATCH (nom_eleve) AGAINST ('".$_POST["nom_eleve"]."') AND MATCH (telephone) AGAINST ('".$_POST["telephone"]."')");

Merci

Hors ligne

#5 21-08-2009 22:00:47

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : requete de recherche avec LIKE

Saluton,

telephone LIKE '278%'  AND telephone LIKE '%5874'

semble pouvoir résoudre le problème.
A toi de générer les '278%' et  '%5874' en PHP à l'aide de substr() sur $_POST['telephone']
A moins que tu ne trouves une syntaxe compatible avec le REGEXP de MySQL.
Mais tout cela risque fort de plomber les performances du serveur.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums