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 :

Redéfinir un nom de champ lors d'une jointure [ZF 1.11]


Sujet :

Zend_Db PHP

  1. #1
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut Redéfinir un nom de champ lors d'une jointure
    Salut à tous

    J'effectue mes 1er test de ZF au niveau des Models.
    J'ai parcouru ces 2 tutos (entre autre) :
    Zend_Db_Table
    Relations Zend_Db_Table
    Jusqu'à lors tout va bien.

    J'ai donc respecté la même structure que le tuto sur les relations, c'est à dire :
    Table "product" :
    Application_Model_DbTable_Product, Application_Model_ProductMapper, Application_Model_Product

    Table "manufacturer" :
    Application_Model_DbTable_Manufacturer, Application_Model_ManufacturerMapper, Application_Model_Manufacturer


    Je souhaite maintenant faire une jointure entre la table "product" et "manufacturer" pour obtenir le nom du manufacturer (fabricant).

    Je suis parvenu à le faire avec ce code dans Application_Model_ProductMapper::fetchAll() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $table = $this->getDbTable();
    //$this->_name (Erreur : propriété non définie ???)
    $select = $table->select()
                    ->setIntegrityCheck(false)
                    ->from(array('p' => 'ps_product'))
                    ->join(array('m' => 'ps_manufacturer'), 'p.id_manufacturer = m.id_manufacturer');
    $resultSet = $table->fetchAll($select);
    Cependant, les noms des champs de la table "manufacturer" sont : id_manufacturer et name


    Ce que je souhaite faire c'est de redéfinir le nom du champ "name" dans le SELECT de cette requête (jointure des 2 tables) avec : name_manufacturer
    (cela sans renommer le champ au niveau de la table).
    Ceci pour éviter un conflit de noms qui pourrait arriver.

    Mais je ne vois pas du tout comment faire.


    Un coup de pouce serait apprécié.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  2. #2
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    Essaye comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $select = $table->select()
                    ->setIntegrityCheck(false)
                    ->from(array('p' => 'ps_product'))
                    ->join(array('m' => 'ps_manufacturer'), 'p.id_manufacturer = m.id_manufacturer', array('name_manufacturer' => 'name'));
    $resultSet = $table->fetchAll($select);


    Les boutons et existent, servez-vous en

  3. #3
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    C'est exactement ce que je recherchais.
    j'étais très loin de penser que cela pouvais se faire à ce niveau.

    Merci pour cette réponse rapide.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/06/2008, 11h26
  2. [MySQL] Donner un autre nom de champ lors d'une requête SELECT
    Par greg13 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/01/2008, 17h30
  3. [MySQL] Appliquer une fonction sur un champ lors d'une requête
    Par Jérémy197 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/08/2006, 13h29
  4. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02
  5. Mauvais noms de colonnes lors d'une requête
    Par nmathon dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/04/2004, 07h27

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