Recherche multicritères

algantilla Messages postés 36 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 5 juillet 2010 - 14 août 2008 à 11:47
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 14 août 2008 à 13:15
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

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
14 août 2008 à 13:15
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.

à+
0
Rejoignez-nous