SOS recherche multicritère en php!!!

fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -  
fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je ss entrain de travailler sur un formulaire de recherche multicritère en php!!
je reçois tt le temps des erreurs qui viennent de ma requête sql et j'arrive pas à déterminer la cause!!
voici mon code:

$domaine=(isset($_POST["domaine"])) ? $_POST["domaine"] : "";
$sect_activ =(isset($_POST["sect_activ "])) ? $_POST["sect_activ "] : "";
$niveau_etud =(isset($_POST["niveau_etud "])) ? $_POST["niveau_etud "] : "";
$intitu_poste=(isset($_POST["intitu_poste"])) ? $_POST["intitu_poste"] : "";


$critere1 = "";
$critere2 = "";
$critere3 = "";
$critere4 = "";
$w="";
$and1="";
$and2="";
$and3="";


if ($domaine != "-- Tout --") { $critere1 = "domaine = '$domaine'"; }
if ($sect_activ != "-- Tout --") { $critere2 = " sect_activ = '$sect_activ'"; }
if ($niveau_etud != "-- Tout --") { $critere3 = " niveau_etud = '$niveau_etud'"; }
if ($intitu_poste != "-- Tout --") { $critere4 = " intitu_poste = '$intitu_poste'"; }

if ($domaine != "-- Tout --" || $sect_activ != "-- Tout --" || $niveau_etud != "-- Tout --" || $intitu_poste != "-- Tout --") { $w= " WHERE"; }
if ($domaine != "-- Tout --" && $sect_activ != "-- Tout --"){ $and1=" AND"; }
if ( $niveau_etud != "-- Tout --" && ($domaine != "-- Tout --" || $sect_activ != "-- Tout --")) { $and2=" AND"; }
if ( $intitu_poste != "-- Tout --" && ($domaine != "-- Tout --" || $sect_activ != "-- Tout --" || $niveau_etud != "-- Tout --")){ $and3=" AND"; }

$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'cv_base';
$tables = 'recherche';

mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$select = "SELECT * FROM $tables".$w.$critere1.$and1.$critere2.$and2.$critere3.$and3.$critere4;
$result = mysql_query($select) or die ('Erreur : '.mysql_error());
$total = mysql_num_rows($result);


et l'erreur c'est:
Erreur : Erreur de syntaxe près de '= '' AND sect_activ = '' AND niveau_etud = '' AND intitu_poste =' à la ligne 1

si quelqu'un peut m'aider je serai très reconnaissante!!
passez une très bonne journée :-)
A voir également:

18 réponses

momohahamemeddd
 
$select = "SELECT * FROM".$tables.$w.$critere1.$and1.$critere2.$and2.$critere3.$and3.$critere4;


Ca n'irait pas mieux ?
0
momohahamemeddd
 
a mon avis ça venais juste du fait que ne concaténais pas ta variable.

Si ça ne fonctionne pas, on cherchera autre chose, si ça fonctionne, merci de prévenir ^^
0
momohahamemeddd
 
de riiiiiiiien ! ^^

Dis moi si ça fonctionne ^^
0
momohahamemeddd
 
y aura surement un problème avec l'espace de $tables = 'recherche';
modifie le en $tables = ' recherche';
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
momohahamemeddd
 
manque un espace devant domaine aussi xD
0
momohahamemeddd
 
'FROMrecherche WHEREdomaine = '' AND sect_activ = '' AND niveau_e' à la ligne 1

Il manque des espaces entre FROM et recherche et entre WHERE et domaine.
0
momohahamemeddd
 
Corriges le problème des espacements avant...

Il faut juste que tu rajoute un espace dans tes variables.

$w= " WHERE"; --> $w= " WHERE ";
$tables = 'recherche'; --> $tables = ' recherche';
0
momohahamemeddd
 
J'ai pas compris la question...

Merci de donner un chtit exemple!
0
momohahamemeddd
 
Désolé j'ai les cours qui reprennent. Je checkerai le topic a 17h pour voir si quelqu'un t'as répondu. a toute !
0
saubion_j Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   2
 
Si la réponse précédente ne fonctionne pas c'est un probleme de caractere spéciaux, il faudra donc modifier les criteres
-1
fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   1
 
merciiiiiiiiiiii!!
tt d'abord je tiens a vous remecrier pour la rapidité de répondre!!! :-)
vous m'avez vraiment étonné!!
je vais essayé la correction de requete que m'a donné momohahamemeddd et j'éspère que ca va marcher!! sinon je vais vous prévenir
merciiiiiiii
-1
fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   1
 
nn :-(
je veux bien finir avec cette recherche!! elle m'a pris assez de temps alors que je dois finir autres choses dans mon application
-1
fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   1
 
et voila la nouvelle erreur:

Erreur : Erreur de syntaxe près de 'FROMrecherche WHEREdomaine = '' AND sect_activ = '' AND niveau_e' à la ligne 1
-1
fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   1
 
en fait que veux tu dire par:

y aura surement un problème avec l'espace de $tables = 'recherche';
modifie le en $tables = ' recherche';
???


je dois changer quoi au juste??

mnt je n'ai plus d'erreurs mais ma recherche ne retourne aucun résultat :-(
-1
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
fais un echo de la requête que tu essayes d'exécuter, tu y verra déjà plus clair...
Une fois que tu l'as, si tu ne vois pas vraiment la solution du premier coup tu peux essayer de l'exécuter dans phpmyadmin et de la corriger de cette façon.
-1
fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   1
 
merci pour votre attention et de vouloir m'aider! :-)
en fait cette fois ci je n'ai plus de prob de syntaxe sauf que le requete me retourne le cas écheant c'est a dire s'il y a pas des données qui conviennent aux critères de recherches!!
vous avez une idée !!
-1
fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   1
 
par exemple si je mets dans domaine "informatique" comme étant un critère de recherche il me retourne aucun résultat ne correspond a votre recherche alors que j'ai deja dans ma table recherche des données qui répondent a ce critère!!
-1
fati.zahra Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   1
 
ok merci bien
et très bonne après midi
-1