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

Symfony PHP Discussion :

Problème de OrderBy avec le Query Builder


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 33
    Par défaut Problème de OrderBy avec le Query Builder
    Bonjour,

    J'ai un petit problème avec le query builder, je n'arrive pas à trier les résultats avec un count.

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $qb = $this->createQueryBuilder('p');
    $qb->addSelect($qb->expr()->count('o'))
    ->addSelect($qb->expr()->min('o.prix'))
    ->addSelect($qb->expr()->max('o.prix'))
    ->addSelect('m')
    ->addSelect('o')
    ->innerJoin('p.marque', 'm')
    ->leftJoin('p.offres', 'o')
    ->addGroupBy('p')
    ->addOrderBy($qb->expr()->count('o'), 'DESC');
    Avec cette requête, j'obtiens l'erreur 500 suivante :
    [Syntax Error] line 0, col 215: Error: Expected end of string, got '('

    Quand j'enlève mon addOrderBy, ma requête fonctionne.

    Merci de votre aide.

  2. #2
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Salut,

    A tout hasard, c'est pas un Having que tu dois mettre avec ton Count ? :o

    Bonne journée

  3. #3
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 33
    Par défaut
    Non le Having sert à filtrer les résultats par ex HAVING COUNT(*) > 0
    Merci quand même

  4. #4
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Désolé, je pensais que c'était ce que tu voulais faire

    Bonne journée

  5. #5
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Je suis étonné quand sans l'OrderBy ca fonctionne en voyant le paramètre de ton GroupBy. Tu dois théoriquement mettre une élément de ton sélect.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $qb->expr()->count('o'))
    $qb->expr()->min('o.prix'))
    $qb->expr()->max('o.prix'))
    'm'
    'o'
    Or ici tu fais un


  6. #6
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 33
    Par défaut
    Ce n'est pas nécessaire de mettre un élément du select, c'est une sorte de raccourci j'aurai pu mettre également ->addGroupBy('p.id'), ça aurai fonctionné aussi.

  7. #7
    Membre confirmé Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Par défaut
    Bon à savoir.

    Autant pour moi Je ne peux de toute évidence pas t'aider

Discussions similaires

  1. Select union avec le query builder
    Par denis1969 dans le forum Doctrine2
    Réponses: 1
    Dernier message: 05/07/2013, 16h15
  2. [2.x] Supprimer une liste de valeur avec un Query Builder
    Par pmithrandir dans le forum Symfony
    Réponses: 1
    Dernier message: 02/06/2013, 20h09
  3. Problème à la liaison avec LMDTools SE et Builder 2006
    Par Bodom-Child dans le forum C++Builder
    Réponses: 2
    Dernier message: 09/02/2007, 15h11
  4. Réponses: 3
    Dernier message: 26/04/2006, 21h45
  5. Réponses: 1
    Dernier message: 29/10/2003, 12h16

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