Recherche multicritères

Signaler
Messages postés
36
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
5 juillet 2010
-
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
-
bonjour tt le monde!
je ss entrain de faire une recherche avec multiple critères pour exploiter ma bd!!
j'ai un prob ds mon code et j crois k c'est au niveau de ma requete sql mais j'arrive pas à le determiner!!
ma base est dejà alimentée par des données et qd je lance une recherche un msg s'affiche pour m'informer que aucon résultat ne correpond a mon critère ( en fait ce msg c'est moi qui l'a definis pour s'affichier ds le cas écheant de ma requete)
je vous envois le code ci-dessous!! et j'atends vos remarques et suggestions avec impatience
merci d'avance et passez une très bonne journée

<?php


$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"] : "";


// Les  variables  $critere1,  $critere2,  $critere3,  $w,  $and1  et  $and2  sont  pour  gérer  la  requête   
$critere1 = "";
$critere2 = "";
$critere3 = "";
$critere4 = "";
$w="";
$and1="";
$and2="";
$and3="";


// Gestion des cas où l'un ou plusieurs champs du formulaire sont "vide" pour que ça soit équivalent à "peu importe"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 ';


 




// connection à la DB
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);


if($total)              
{
 echo'<center>';
 echo "  <!--DWLayoutTable-->\";
  echo \"----

    Nom&nbsp;,
 Prénom&nbsp;,
 Intitulé poste&nbsp;,
 Entreprise&nbsp;,
 Domaine&nbsp;,
    Secteur dactivité&nbsp;,
    Niveau détudes&nbsp;,
  \";
  echo \"----

    &nbsp;,
    &nbsp;,
    &nbsp;,
    &nbsp;,

 
  ----
\";
  while($row = mysql_fetch_array($result))
  {
    echo '
 
 &nbsp;&nbsp;'.$row['nom'].'&nbsp;,
    &nbsp;&nbsp;'.$row['prenom'].'&nbsp;,
 &nbsp;&nbsp;'.$row['intitu_poste'].'&nbsp;,
 &nbsp;&nbsp;'.$row['etpse'].'&nbsp;,
 &nbsp;&nbsp;'.$row['domaine'].'&nbsp;,
    &nbsp;&nbsp;'.$row['sect_activ'].'&nbsp;,
    &nbsp;&nbsp;'.$row['niveau_etud'].'&nbsp;,
  ';
  }
echo '
';
echo'</center>';
}
else echo '
Aucun r&eacute;sulat ne corresponds &agrave; votre recherche !!...

';


mysql_free_result($result);
mysql_close();
}


?>

1 réponse

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Bonjour,

malheureusement on ne va pas débugger ta requête à ta place...

s'il n'y a pas d'erreur SQL, ce que tu devrais faire c'est afficher la requête finale qui est soumise au serveur SQL et la lire soigneusement, tu devrais voir pourquoi elle ne renvoie pas de résultat.

à+