Étudiante en détresse !!!! - SQL/NoSQL - Programmation
Marsh Posté le 28-07-2011 à 10:40:37
en PHP, je ferai quelquechose comme ça :
Code :
|
Marsh Posté le 28-07-2011 à 10:43:39
Merci pour ta réponse très rapide, je vais tester sa immédiatement =)
Marsh Posté le 28-07-2011 à 11:04:21
Sa fonctionne parfaitement, merci à toi flo
Une fois fini, je posterai mon code pour ceux que sa intéresse.
Merci encore biz
Marsh Posté le 29-07-2011 à 17:28:49
Bonjour à tous,
J'ai de nouveau un problème que je n'arriva pas à résoudre...
En effet je souhaite réaliser une requête, qui en fonction de la formation d'un candidat choisi me ressort son nom ainsi que son prénom.
Ma base de données possède les trois tables suivantes : `candidat`;`posseder`;`formation`
Candidat posseder formation
Nom,prénom,idcandidat idcandidat,idformation idformation,intitule
Lorsque je sélectionne une seul formation, ma requête fonctionne correctement
SELECT distinct candidat.nom, candidat.prenom FROM candidat,posseder WHERE 1=1 AND candidat.idCANDIDAT = posseder.idCANDIDAT AND posseder.idFORMATION = '8'
Le problème : lorsque j'ajoute une autre formation, la requête me renvoie aucun résultat
SELECT distinct candidat.nom, candidat.prenom FROM candidat,posseder WHERE 1=1 AND candidat.idCANDIDAT = posseder.idCANDIDAT AND posseder.idFORMATION = '8' AND posseder.idFORMATION = '2'
Après des heures d'acharnement, je m'en remet à vous pour m'aider.
Merci d'avance cintia
Ps : par la suite j'aimerai pouvoir sélectionner un candidat résultant de la recherche afin d'afficher directement à l'utilisateur le cv du candidat. Avez vous une solution? j'avais pensé à créer une checkboxe devant chaque candidat avec un bouton afficher cv, est-ce une bonne idée?
Marsh Posté le 29-07-2011 à 20:40:31
là , ça va etre un peu plus compliqué.
la requete que tu fais, cherche une ligne de la base de données avec idFormation qui est a la fois égal a 8 et a 2 . Tu comprends donc que tu n'auras pas de résultat
Là , on va sortir quelques outils en plus
1/ utiliser de belles jointures
Code :
|
2/ aliaser les tables
Code :
|
3/appeler plusieurs fois la meme table
Code :
|
4/on généralise ça avec php
Code :
|
5/ utiliser des requetes preparées et/ou PDO
pour ton lien , tu affiche ton tableau avec des liens
<a href="afficheCV.php?idCandidat=$id">$nom $prenom</a>
Marsh Posté le 28-07-2011 à 10:13:17
Bonjour à tous,
Actuellement en stage dans une entreprise, j'ai pour objectif de mettre en place un logiciel qui gère les demandes d’emplois.
Pour se faire, une application web (html, php, javascript, mysql) à été mise en place. Jusque la tout vas bien
Or pour répondre à une des différentes attentes utilisateurs, je dois réaliser une fonction "rechercher" qui, en fonction des critères de sélection, me renvoie le résultat attendu. Le problème : la recherche peux s'exécuter selon plus de 12 critères différents (localisation, age, mots clés, nom, formation, secteur, habilitation, permis etc).
Ma première idée à été de créer une requête spécifique à chaque cas,(exemple d'une demande : recherche un candidat majeur, dans le département 37, de formation commercial ayant le permis b). Cependant, après un petit calcul, je me suis rendu compte qu'il y a plus de 4000 possibilités ce qui rend le traitement cas par cas beaucoup trop long...
Autre idée : je souhaiterai fusionner le résultat de plusieurs requêtes SQL (et logique).
Mais techniquement, je ne trouve pas la solution...
Voici un exemple concret de se que j’attends :
L'utilisateur souhaite afficher le nom et le prénom des candidats qui possèdent le permis B et qui sont dans le département 37.
Première requête : "SELECT nom, prenom FROM `candidat` WHERE permis.libellepermis = 'B';
Résultat : DUPONT Simon, DUFOUR David, SELLIER Sylvie
Deuxième requête : "SELECT nom, prenom FROM `candidat` WHERE candidat.cp= 37;
Résultat : DUFOUR David, TOM alex
Désormais je voudrai connaître une commande qui fusionne ces deux requêtes pour obtenir le résultat suivant UFOUR David.
Est ce que c'est possible? Dois-je traitée les 4000 cas?
Merci à ceux qui liront mon problème et essayeront de le résolver