IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Récupération de données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut Récupération de données
    Bonjour alors j'aimerais savoir si quelqu'un a une solution par rapport a mon problème.

    J'ai 3 tables une table 'candidats' un table 'metiers' et une table 'submetiers'...
    dans ma table 'candidats' j'ai un id (ex: 266) et dans ma table 'metiers' j'ai un colonne 'candidats_id' qui me permet de les liés entre eux et dans ma table 'metiersub' une colonne 'metiers_id' qui me permet de lié les sous-metiers aux métiers .

    Un peux comme un système d' arborescence .

    et voici mon problème ... Je n'arrive pas a recupérer LES metiers d'un candidats ainsi que LES sous-metier lié à ces métiers.

    Dans ma requète php je ne recupère seulement le dernier dans la liste (ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    candidats 266 -> support -> informatique
                   marketing -> marketing management & assistant marketing 
     
    Resultat = candidats 266 -> marketing -> assistant marketing
    Le mieu c'est que je recupère tout si quelqu'un a une idée je prend

    Merci a tous

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Par défaut
    Bonjour,

    Ne serait-ce pas quelque chose comme ceci ?

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT *
    FROM candidat, metier, submetier
    WHERE candidat.IdCandidat = IdARecup
    AND candidat.IdCandidat = metier.IdCandidat
    AND metier.IdSubmetier = submetier.IdSubmetier

    Cordialement.

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 623
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Je ne vois aucune difficulté particulière, 3 jointures inner ou outer selon le résultat souhaité et hop

    Voici un exemple qui affiche tous les candidats, qu'ils aient ou non un métier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Select CAN.NOM, 
           CAN.PRENOM,
           MET.LIBELLE, 
           SUB.LIBELLE
    From Candidats as CAN
    left outer join Metiers as MET
      on MET.candidats_id = CAN.candidats_id 
    left outer join metiersub as SUB
      on SUB.metiers_id = MET.metiers_id
    Tu remplaces left outer par inner si seuls les candidats ayant un métier au moins sont requis

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut
    Enfaite la récupération au niveau SQL est ok mais c'est surtout dans mon code php en faite je ne récupère pas tout pourtant je suis bien en fetchall :/

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si le problème est au niveau PHP, il faut nous montrer ton code PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2014
    Messages : 20
    Par défaut
    Attention ça pique les yeux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    public function find($req=null){
    		$sql= 'SELECT ';
     
    		if(isset($req['fields'])){
    			if(is_array($req['fields'])){
    				$sql .=implode(',', $req['fields']);
    			}else{
    				$sql .=$req['fields'];
    			}
    		}else{
    			$sql .='*';
    		}
     
    		$sql .=' FROM ';
    		if(isset($req['tables'])){
    			$sql.= $req['tables'];
    		}else{
    			$sql.= $this->table.' as '.get_class($this);
    		}
     
    		//Construction de la condition
    		if(isset($req['conditions'])){
    			$sql .= ' WHERE ';
    			if(!is_array($req['conditions'])){
    				$sql .= $req['conditions'];
    			}else{
    			$cond = array();
    			$req['conditions'];
    				foreach($req['conditions'] as $k=>$v){
    				if(is_numeric($v)){
    				$v = '"'.$v.'"';
    				}
    				$cond[]= "$k=$v";
    				}
    				$sql .= implode(' AND ',$cond);
    			}
    		}
     
    		if(isset($req['limit'])){
    			$sql .= ' LIMIT '.$req['limit'];
    		}
     
    		if(isset($req['order'])){
    			$sql .= ' ORDER BY '.$req['order'];
     
    		}
     
     
    		$pre= $this->db->prepare($sql);
    		$pre->execute();
    		return $pre->fetchAll(PDO::FETCH_OBJ);
    	}

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Que donne la requête construite ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/04/2004, 10h09
  2. Réponses: 2
    Dernier message: 20/02/2004, 08h47
  3. [ DB2] => [ORACLE] Récupération de données
    Par LeDid dans le forum DB2
    Réponses: 3
    Dernier message: 25/06/2003, 17h10
  4. Réponses: 13
    Dernier message: 20/03/2003, 08h11
  5. [XMLRAD] récupération de donnée
    Par Mitch79 dans le forum XMLRAD
    Réponses: 7
    Dernier message: 30/01/2003, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo