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 Framework PHP Discussion :

résultat d'une select zend_db


Sujet :

Zend Framework PHP

  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 résultat d'une select zend_db
    bonjour à toutes et à tous,
    mon prob est que je n'arrive pas à réaliser une requête qui retourne un tableau imbriqué selon des jointures :

    données :

    1er table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(2) { [0]=> array(4) { ["IdOrg"]=> string(1) "1" ... } }
    2eme table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     array(3) { [0]=> array(4) { ["IdSO"]=> string(1) "1" ["Idorg"]=> string(1) "1" ... } }
    3eme table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(4) { [0]=> array(12) { ["IdDocs"]=> string(1) "1" ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1" ... } }
    je veux sélectionner les champs de tout les tables et le résultat soit comme suite :

    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
    array(2) { [0]=> array(4) { ["IdOrg"]=> string(1) "1" ["taleau 2"]=> array(){ 
     
    	[0]=> array(4) { ["IdSO"]=> string(1) "1" ["Idorg"]=> string(1) "1" ["taleau 3"]=> array(){
     
    		[0]=> {["IdDocs"]=> string(1) "1" ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1"}
    		[1]=> {["IdDocs"]=> string(1) "1" ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1"}
    ...
    }
    	[1]=> array(4) { ["IdSO"]=> string(1) "1" ["Idorg"]=> string(1) "1" ["taleau 3"]=> array(){
     
    		[0]=> {["IdDocs"]=> string(1) "1" ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1"}
    		[1]=> {["IdDocs"]=> string(1) "1" ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1"}
    ...
    }
     
    } ... } }
    mon code est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $select = $db->select();
               $select->from(array("p" => "tableau1"), array("p.IdOrg"))
    		     ->join(array("u" => "tablea2"),'p.IdOrg = u.Idorg' , array("u.IdSO"))
    		    ->join(array("d" => "tableau3"),'d.IdSO = u.IdSO')
    		    ->group(array('d.IdOrg'))
    							   ;
     
    	    $res = $db->fetchAll($select);
    or ce code donne un autre résultat (résultat aplatis ):



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    array(2) { [0]=> array(14) { ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1" ["IdDocs"]=> string(1) "2" } [1]=> array(14) { ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1" ["IdDocs"]=> string(1) "3" } 
    ...
    }
    merci d'avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    formate tes var_dump en pre on verra mieux

  3. #3
    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 est merciiii bcp pour votre réponse
    en faite mon problème est simple je veux un affichage imbriqué :

    ======
    ====
    ===
    ===
    ===
    ======
    ====
    ===
    ===
    ===

    au lieu d'un affichage aplatis :

    ===== ==== ===
    ===== ==== ===
    ===== ==== ===
    ...

    mon code donne ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    array(2) { [0]=> array(14) { ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1" ["IdDocs"]=> string(1) "2" } [1]=> array(14) { ["IdOrg"]=> string(1) "1" ["IdSO"]=> string(1) "1" ["IdDocs"]=> string(1) "3" } 
    ...
    }

    merciiiii

  4. #4
    Invité de passage
    Femme Profil pro
    Ingénieur commercial
    Inscrit en
    Mai 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 1
    Par défaut
    Bonsoir à toutes et à tous
    en fait moi aussi, j'ai le même problème et jusqu'aujourd'hui je n'ai pas trouver une solution
    si quelqu'un peut m'aider je serais très reconnaissante

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Il faut faire un fetch group.

  6. #6
    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
    merciii beaucoup stealth35 pour votre aide,

    la fonction Zend_Db::FETCH_GROUP a réglé le problème d'affichage de résultat imbriqué en 1er niveau, mais pour mois j'ai un affichage en plusieurs niveau 3,4,5 niveau

    est ce qu'il y a une solution, je me suis bloqué

    et merciiii

  7. #7
    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 j'ai oublié d'ajouter le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $select = $db->select()
                 ->from(array("p" => "organisation"), array("p.Intitule","u.IntituleSO"))
    	     ->join(array("u" => "sousorg"),'p.IdOrg = u.Idorg')
    	     ->join(array("d" => "docs"),'d.IdSO = u.IdSO')
    	     ->where('d.Etat = ?', "A")
    	     ->order('d.DateCreatDoc desc');
     
    	$res = $db->fetchAll($select,null,Zend_Db::FETCH_GROUP);
    je veux un groupement à 2 niveau

    1- p.Intitule
    2- u.IntituleSO

    malheureusement le résultat est groupé au premier niveau seulement p.Intitule

    merciiiii bien

Discussions similaires

  1. Afficher la résultat d'une SELECT dans un tableau(MYSQL)
    Par karamovic dans le forum Android
    Réponses: 3
    Dernier message: 02/05/2012, 09h11
  2. [MySQL] visualisation des résultats après une selection
    Par popoche28 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/05/2010, 17h41
  3. Remplir une colonne d'une table du résultat d'une SELECT
    Par emmr.rida dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/12/2008, 16h34
  4. Réponses: 2
    Dernier message: 12/09/2007, 14h03
  5. [Sybase] résultat d'un select dans une variable
    Par stoz dans le forum Sybase
    Réponses: 2
    Dernier message: 14/09/2004, 14h28

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