Besoin d'aide! recherche multicritère

fati.zahra Messages postés 80 Statut Membre -  
fati.zahra Messages postés 80 Statut Membre -
Bonjour tt le monde!!

encore une fois de plus je postule un msq sur le forum pour avoir votre aide afin de résoudre mon problème de recherche multicritère

je donne ci-dessous un extrait de mon code !! voulez vous bien jeter un coup d'oeil pour voir avec moi pourquoi ça marche pas!!
après exécution j'ai le msg : QUYERY EST VIDE !!!
et quand j'ai testé ma requete sql au niveau de mysql ca marche tres bien!!
merci d'avance et passez un très bon week end

<?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"] : "";
$chercher=(isset($_POST["chercher"])) ? $_POST["chercher"] : "";
$sql=(isset($_POST["sql"])) ? $_POST["sql"] : "";
$result=(isset($_POST["result"])) ? $_POST["result"] : "";

$host = 'localhost';
$user = 'root';
$pass = '';

$connexion = mysql_connect($host,$user,$pass)or die ("la connection au serveur a echoué");
$db = mysql_select_db('cv_base', $connexion)or die ("Echec selection BD");

if($domaine)
{
$sql= " SELECT candidat.nom, candidat.prenom, experiences.intitu_poste, experiences.etpse, formation.domaine, experiences.sect_activ, formation.niveau_etud FROM candidat , experiences , formation
WHERE candidat.id_can = formation.id_can and candidat.id_can = experiences.id_can and domaine = '".$_POST['domaine']."'";
}

$result=mysql_query($sql,$connexion) or die('Erreur SQL<br />Requête : '.$sql.'<br />Message d\'erreur : '.mysql_error());

if($chercher)
{

if(!$result)
{echo"erreur de requette";}

else
{
$nb=mysql_num_rows($result);
if($nb)
{ echo" <b>$nb résultat(s) trouvé(s): </b><br>";
echo"<br>";
}

else
{
echo" <b>$nb aucun résultat(s) trouvé(s)! veuillez changer vos critères de recherche </b><br>";
}

while ($ligne = mysql_fetch_array($result))
{
echo"<b>nom :</b>$ligne[nom]<br>";
echo"<b>prenom:</b>$ligne[prenom]<br>";
echo"<b>poste:</b>$ligne[intitu_poste]<br>";
echo"<b>entreprise:</b>$ligne[etpse]<br>";
echo"<b>domaine :</b>$ligne[domaine]<br>";
echo"<b>secteur :</b>$ligne[sect_activ]<br>";
echo"<b>niveau :</b>$ligne[niveau_etud]<br>";
echo"<br>";
}
// }
}
}
mysql_free_result($result);
mysql_close($connexion);
?>

15 réponses

ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Si tu fais un echo de $sql avant de l'exécuter, la requête est-elle correcte ?

Tu récupères bien les $_POST ?
0
fati.zahra Messages postés 80 Statut Membre 1
 
en fait qd j'élimine cette ligne
$sql=(isset($_POST["sql"])) ? $_POST["sql"] : ""; il me donne un msg d'erreur qu'il s'agit d'une variable nn définie !!!
0
ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
donc c'est ta variable $domaine qui ne doit pas être instanciée.
0
fati.zahra Messages postés 80 Statut Membre 1
 
veut tu bien m'expliquer ce que tu veu dire par cela?? merci :-)
0

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

Posez votre question
fati.zahra Messages postés 80 Statut Membre 1
 
en fait pour récupérer la valeur du champ domaine saisie par l'utlisateur que dois je écrire? :

domaine = '".$_POST['domaine']."'

ou bien

domaine = '$domaine'

????!!!!!!!

je crois que la valeur de ce champs n'est pas récuperé!!
0
ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
quelque chose du style :

if (isset($_POST['domaine'])) {
  $domaine = $_POST['domaine'];
}
else {
  $domaine = "";
}
0
fati.zahra Messages postés 80 Statut Membre 1
 
je crois que je l'ai déjà mentionné au début du code:

$domaine=(isset($_POST["domaine"])) ? $_POST["domaine"] : "";
0
ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Donc à ce moment là c'est plutôt ça qu'il faut modifier :

if($domaine != "")
{
  $sql= " SELECT candidat.nom, candidat.prenom, experiences.intitu_poste, experiences.etpse, formation.domaine, experiences.sect_activ, formation.niveau_etud FROM candidat , experiences , formation
WHERE candidat.id_can = formation.id_can and candidat.id_can = experiences.id_can and domaine = '".$_POST['domaine']."'";
} 
0
fati.zahra Messages postés 80 Statut Membre 1
 
merci ThEBiShOp de vouloir m'aider!!
j'ai essayé ce que tu m'as proposé mais j'ai tjrs même prob!!
je me demande pk ca marche pas!! j'ai fais ttes les possibilités pour résoudre ce prob et mnt je ss vraiment bloquée
bon week end :-)
0
ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
c'est difficile de trouver une solution comme ça sans avoir l'intégralité des éléments, il y a sûrement une petite erreur mais si j'avais tout le code et la base de données ça serait énormément plus simple...
0
fati.zahra Messages postés 80 Statut Membre 1
 
voici mon code complet:
<?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"] : "";
$chercher=(isset($_POST["chercher"])) ? $_POST["chercher"] : "";
$sql=(isset($_POST["sql"])) ? $_POST["sql"] : "";

$cnx = mysql_connect("localhost","root", "" )or die ("la connection au serveur a echoué");
$db = mysql_select_db("cv_base")or die ("Impossible de se connecter à la base de données");

if($domaine != "")
{
$sql= " SELECT candidat.nom, candidat.prenom, experiences.intitu_poste, experiences.etpse, formation.domaine, experiences.sect_activ, formation.niveau_etud FROM candidat , experiences , formation
WHERE candidat.id_can = formation.id_can and candidat.id_can = experiences.id_can and domaine = '".$_POST['domaine']."'";
}
elseif($sect_activ)
{
$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can and sect_activ = '$sect_activ'";
}
elseif($niveau_etud)
{
$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can and niveau_etud = '$niveau_etud' ";
}

elseif($domaine && $niveau_etud)
{$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and domaine = '$domaine' and niveau_etud = '$niveau_etud' ";
}

elseif($domaine && $sect_activ)
{$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and domaine = '$domaine' and sect_activ = '$sect_activ' ";
}

elseif($domaine && $intitu_poste)
{$requet="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and domaine = '$domaine' and intitu_poste = '$intitu_poste' ";
}

elseif($niveau_etud && $sect_activ)
{$requet="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and niveau_etud = '$niveau_etud' and sect_activ = '$sect_activ' ";
}

elseif($niveau_etud && $intitu_poste)
{$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and niveau_etud = '$niveau_etud' and intitu_poste = '$intitu_poste' ";
}

elseif($sect_activ && $intitu_poste)
{$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and sect_activ = '$sect_activ' and intitu_poste = '$intitu_poste' ";
}

elseif($domaine && $niveau_etud && $sect_activ)
{
$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and domaine = '$domaine' and niveau_etud = '$niveau_etud' and sect_activ = '$sect_activ' ";
}

elseif($domaine && $niveau_etud && $intitu_poste)
{
$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and domaine = '$domaine' and niveau_etud = '$niveau_etud' and intitu_poste = '$intitu_poste' ";
}

elseif($sect_activ && $niveau_etud && $intitu_poste)
{
$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and sect_activ = '$sect_activ' and niveau_etud = '$niveau_etud' and intitu_poste = '$intitu_poste' ";
}

elseif($sect_activ && $niveau_etud && $intitu_poste && $domaine)
{
$sql="select c.nom, c.prenom, e.intitu_poste, e.etpse, f.domaine, e.sect_activ, f.niveau_etud from candidat c, experiences e, formation f
where c.id_can = f.id_can and c.id_can=e.id_can
and sect_activ = '$sect_activ' and niveau_etud = '$niveau_etud' and intitu_poste = '$intitu_poste' and domaine = '$domaine' ";
}

elseif(empty($sect_activ)&& empty($intitu_poste) && empty($niveau_etud) && empty($domaine))
{echo"<b><center>veuillez choisir un critère!!</center></b><br>";}

$result=mysql_query($sql,$cnx);
//$result = mysql_query($sql, $cnx) or die('.mysql_error());

if($chercher)
{

if(!$result)
{echo"erreur de requette";}

else
{
$nb=mysql_num_rows($result);
if($nb)
{ echo" <b>$nb résultat(s) trouvé(s): </b><br>";
echo"<br>";
}

else
{
echo" <b>$nb aucun résultat(s) trouvé(s)! veuillez changer vos critères de recherche </b><br>";
}

while ($ligne = mysql_fetch_array($result))
{
echo"<b>nom :</b>$ligne[nom]<br>";
echo"<b>prenom:</b>$ligne[prenom]<br>";
echo"<b>poste:</b>$ligne[intitu_poste]<br>";
echo"<b>entreprise:</b>$ligne[etpse]<br>";
echo"<b>domaine :</b>$ligne[domaine]<br>";
echo"<b>secteur :</b>$ligne[sect_activ]<br>";
echo"<b>niveau :</b>$ligne[niveau_etud]<br>";
echo"<br>";
}
// }
}
}

mysql_close();
?>

j'éspère que mnt tu arriveras à m'aider
0
ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
le soucis c'est qu'il va toujours me manquer la base de données et le formulaire qui appelle ce script
0
fati.zahra Messages postés 80 Statut Membre 1
 
ok je vais te le passer!! tu peux m'ajouter sur vos contacts msn??
0
ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
heu tu peux pas me les passer par message privé ?

désolé j'ai pas pour habitude de prendre sur msn les gens que j'aide sur les forums ^^
0
fati.zahra Messages postés 80 Statut Membre 1
 
ok ce 'est pas grave :-)
je vais te les passer en msg prvié
0