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

Zend_Db PHP Discussion :

relation N-N zend_db


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Par défaut relation N-N zend_db
    bonjour à toutes et à tous,

    comme j'ai écrit dans l'intitulé j'ai une relation N-N entre 2 tables et j'ai crée une 3eme table intérimaire, mon problème c'est au niveau de la récupération des données: les données sont dupliqués au nombres des tuples dans la table intermédiaire, voila le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $select = $db->select()
     
    	->from(array('c' => 'constat'),array('lc.Intitule',"c.Idconstat", "c.IntituleCst", "c.DateDebut", "c.Idrespqse",	"c.Description"))
     
    	->join(array('l' => 'concerne_cons_proc'),'c.Idconstat = l.Idconstat',array())
     
    	->join(array('lc' => 'type_constat'),'c.Idtypconstat = lc.Idtypconstat',array())
    	->where('l.IdProc = ?',$Odoc);
     
    	$resStati = $db->fetchAll($select,null,Zend_Db::FETCH_GROUP);
    le résultat de la requête est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    array(1) { ["dysfonctionnement"]=> array(3) { 
    [0]=> array(5) { ["Idconstat"]=> string(1) "2" ["IntituleCst"]=> string(1) "3" } 
    [1]=> array(5) { ["Idconstat"]=> string(1) "1" ["IntituleCst"]=> string(1) "1" } 
    [2]=> array(5) { ["Idconstat"]=> string(1) "1" ["IntituleCst"]=> string(1) "1"  } 
    } }
    les données dupliqués sont [1] et [2]
    je me suis bloqué à ce niveau
    merciiiiiiii d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Par défaut
    bonjour Tout le monde,

    j'ai essayé d'utiliser la fonction distinct() mais ça marche pas le code devenu comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $select = $db->select()
    	->distinct()						
    	->from(array('c' => 'constat'),array('lc.Intitule',"c.Idconstat", "c.IntituleCst", "c.DateDebut", "c.Idrespqse",	"c.Description"))
     
    	->join(array('l' => 'concerne_cons_proc'),'c.Idconstat = l.Idconstat',array())
     
    	->join(array('lc' => 'type_constat'),'c.Idtypconstat = lc.Idtypconstat',array())
    	->where('l.IdProc = ?',$Odoc);
     
    	$resStati = $db->fetchAll($select,null,Zend_Db::FETCH_GROUP);
    est ce qu'il y a une moyenne d'indiquer le champ ou je veux mettre le distinct() par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ->distinct("l.IdProc ")
    j'ai beaucoup besoin d'une solution j'ai beaucoup cherché dans google mais aucun résultat .
    un grand merciiiii à tout le monde

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Par défaut
    Bonjour,

    je suis confronté au même problème, as-tu trouvé une solution?

    Merci d'avance pour votre aide!!!!

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Par défaut
    Bonjour,

    j'ai trouvé solution à mon problème et je le poste pour qui ça peut aider.

    Il m'a suffit de préciser lorsque je fais ma jointure le champs sur lequel mon distinct va porter dans ma table liée par cette jointure.

    Plus clairement, avec la requête ci-dessus, j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $select = $db->select()
    							
    	->from(array('c' => 'constat'),array('lc.Intitule',"c.Idconstat", "c.IntituleCst", "c.DateDebut", "c.Idrespqse",	"c.Description"))
    							
    	->join(array('l' => 'concerne_cons_proc'),'c.Idconstat = l.Idconstat',array( 'l.Idconstat' ))
    							
    	->join(array('lc' => 'type_constat'),'c.Idtypconstat = lc.Idtypconstat',array( 'lc.Idtypeconstat' ))
    	->where('l.IdProc = ?',$Odoc);
    voilà pour moi,
    en espérant aider certains d'entre vous.....

  5. #5
    Membre éclairé
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Par défaut
    merci flilou,

    malheureusement pour moi c'est toujours le même problème.

    merci encore

Discussions similaires

  1. Mettre en relation les contrôles DBLookUpComboBox et DBGrid
    Par Gendarmette dans le forum Bases de données
    Réponses: 7
    Dernier message: 19/01/2004, 13h16
  2. [Relations] afficher les relations entre 2 tables
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 14/01/2004, 17h07
  3. [EJB2.1 Entity] [CMR] Relation One to Many
    Par hamed dans le forum Java EE
    Réponses: 2
    Dernier message: 31/12/2003, 14h26
  4. Réponses: 2
    Dernier message: 26/09/2003, 15h54
  5. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 15h16

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