Bonjour, j'aimerais mettre en place un filtre pour ma liste téléphonique de mon entreprise, je voudrais que le filtre agit sur le nom et le prénom avec en plus la gestion d'un espace! je vous montre le code que je pensais bon:
Spoiler :
SELECT CodeMembre,NomMembre, PrenomMembre, NumPosteInt, RaccourciPort, NomServ, Mail FROM Tel_Membre, Tel_Service WHERE Tel_Membre.CodeServ=Tel_Service.CodeServ AND NomMembre," ",PrenomMembre LIKE '%$Filtre%' ORDER BY NomMembre;
Voila en faite si la personne entre dans le filtre "f d" je veux que le filtre cherche un "f" dans NomMembre et un "d" dans PrenomMembre!
Ou alors si la personne entre "fran" je veux que ca cherche "fran"soit dans NomMembre ou PrenomMembre, faut pas que ca soit forcément dans les deux champs obligatoirement!
Merci.
Publicité
Posté le 06-06-2008 à 09:48:45
couak
Posté le 07-06-2008 à 19:32:09
à mon avis en SQL pur tu vas galérer, le mieux est d'utiliser le langage qui requête la base pour construire dynamiquement la requête SQL à passer
Je suppose que c'est du PHP+MySQL (quand aucune info est donnée ya 99% de chances que ca soit car les gens pensent toujours que tout le monde fait du PHP+MySQL)
en PHP ca pourrait te donner un truc comme ca :
Code :
$query = "SELECT CodeMembre,NomMembre, PrenomMembre, NumPosteInt, RaccourciPort, NomServ, Mail FROM Tel_Membre, Tel_Service WHERE Tel_Membre.CodeServ=Tel_Service.CodeServ ";
if (ereg(" ", $Filtre))
{
list($nom, $prenom) = split(" ", $Filtre);
$query .= "AND NomMembre like '%$nom%' AND PrenomMembre like '%$prenom%'";
}
else
{
$query .= "AND (NomMembre like '%$Filtre%' OR PrenomMembre like '%$Filtre%'";
}
Attention j'ai pondu un truc sans vérifier, et qui n'est sûrement pas suffisamment robuste à tous les cas (genre le cas où il y a plus espaces dans le champs de saisie)
}