Besoin d'aide! recherche multicritère
fati.zahra
Messages postés
80
Statut
Membre
-
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);
?>
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);
?>
A voir également:
- Besoin d'aide! recherche multicritère
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche image - Guide
- Je recherche une chanson - Guide
- Problème recherche de chaine tv thomson - Forum Téléviseurs
15 réponses
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 ?
Tu récupères bien les $_POST ?
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 !!!
$sql=(isset($_POST["sql"])) ? $_POST["sql"] : ""; il me donne un msg d'erreur qu'il s'agit d'une variable nn définie !!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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é!!
domaine = '".$_POST['domaine']."'
ou bien
domaine = '$domaine'
????!!!!!!!
je crois que la valeur de ce champs n'est pas récuperé!!
quelque chose du style :
if (isset($_POST['domaine'])) {
$domaine = $_POST['domaine'];
}
else {
$domaine = "";
}
je crois que je l'ai déjà mentionné au début du code:
$domaine=(isset($_POST["domaine"])) ? $_POST["domaine"] : "";
$domaine=(isset($_POST["domaine"])) ? $_POST["domaine"] : "";
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']."'";
}
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 :-)
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 :-)
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...
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
<?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
le soucis c'est qu'il va toujours me manquer la base de données et le formulaire qui appelle ce script