Recherche mulitcritère

Petit nouveau ! | 1 Messages

13 juin 2012, 20:45

Bonjour,

Je cherche à faire une recherche sur une table en fonction de plusieurs critères.
Je voudrais que la requête ignore la condition si le champs n'a pas été rempli par l'utilisateur.
Ainsi si on renseigne un nom et un numéro de téléphone par exemple, la requête ne s'effectue seulement sur ces critères ci.

Je travaille sur une table Personne (numclient, nomclient, prenomclient, numtel)

Voici mon code :
$vSql = "SELECT * from Personne where ($idclient ISNULL OR numclient =$idclient) AND ($nomclient=' ' OR nom = '".$nomclient."') AND($prenomclient=' ' OR prenom = '".$prenomclient."') AND  ($numtel=' ' OR numtel = '".$numtel."')) ;"; 
Celui ci ne fonctionne pas...et à vrai dire je m'arrache les cheveux dessus depuis quelques heures!

Quelqu'un peut-t-il m'éclairer?

Un grand merci,

Tit047

ViPHP
ViPHP | 2577 Messages

14 juin 2012, 08:46

Edit oops, je n'ai pas les yeux en face des trous... Il manque une paranthèse après le where

Tit0047
Invité n'ayant pas de compte PHPfrance

14 juin 2012, 09:41

Oops, autant pour moi!

Par contre cela ne fonctionne toujours pas...d'autres idées d'erreurs?
      		$vSql = "SELECT * from Personne where (($idclient ISNULL OR numclient =$idclient) AND ($nomclient='' OR nom = '".$nomclient."') AND($prenomclient='' OR prenom = '".$prenomclient."') AND  ($numtel='' OR numtel = '".$numtel."')) ;"; 
Merciiiiii!

ViPHP
ViPHP | 2577 Messages

14 juin 2012, 13:51

"...($idclient ISNULL OR numclient =$idclient)..." ne doit pas passer.
Ca doit donner : ( ISNULL OR numclient =)

A mon avis, si $idclient est vide, mets 0 dedans et fais un test classique : ($idclient = 0 OR numclient =$idclient)

Il faut tester la bonne exécution de la requête et afficher mysql_error() en cas de problème. Il me semble que tu devrais paramétrer PHP pour afficher les erreurs d'éxécution : error_reporting et error_display dans le fichier php.ini