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

ORM PHP Discussion :

Résultat de la requete incomplet


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2011
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 63
    Par défaut Résultat de la requete incomplet
    J'ai une table formation ayant deux (2) enregistrements. Je voudrais obtenir le dernier diplome obtenu par chaque membre. Cependant , lorsque j'execute ma requete, elle me renvoie deux fois le même enregistrement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function formationCvthque(){
     
              $r = $this->createQuery('m')->
              SELECT ('Max(f.niveau) AS nv , f.diplome AS diplome')->
              leftJoin('m.Formation f')->
              WHERE ('m.typemembre =1')->
              groupBy ('f.fkmembre');
              return $r->execute();
         }
    dans mon template

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ul>
            <?php foreach ($derniereFormation as $fv) :?>
              <li>
                  <?php  echo $fv->diplome;?>
                     <?php endforeach; ?>
              </li>
          </ul>
    mon action

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function executeVoscriteres(sfWebRequest $request) {         
     
           $this->derniereFormation = Doctrine_Core::getTable('membre')->formationCvthque(); 
      }
    Voici la requete sql generée dans l'onglet sql Queries de la debug bar de symfony :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(f.niveau) AS f__0, f.diplome AS f__1 FROM Membre m LEFT JOIN Formation f ON m.idcandidat = f.fkmembre WHERE (m.typemembre = 1) GROUP BY f.fkmembre
    Lorsque j'execute cette requete dans phpMyAdmin par exemple , elle affiche les infos sur tous les deux enregistrements de la table.

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 534
    Par défaut
    Doctrine semble pas bien gérer les requêtes un peu complexe.
    En gros dés que tu as un Group BY le résultat avec un execute normal est assez farfelu.
    Essaye avec un hydrate array ou pire un hydrate none, tu devrais retrouver tes petits
    mais tu perd toute la puissance de doctrine.

Discussions similaires

  1. Comment classer les résultats de ma requete ?
    Par eustache dans le forum Requêtes et SQL.
    Réponses: 19
    Dernier message: 27/02/2009, 23h03
  2. tester si le résultat d'une requete est vide
    Par monstour dans le forum ASP
    Réponses: 13
    Dernier message: 04/10/2006, 15h14
  3. récupérer le résultat d'une requete
    Par sheira dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2004, 12h04
  4. fusionner le résultat de deux requetes
    Par sami_c dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/05/2004, 10h56
  5. résultat d'une requete affiché par mois
    Par zorely dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2004, 08h18

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