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 :

[Doctrine] Limit dans requete avec Doctrine


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut [Doctrine] Limit dans requete avec Doctrine
    Bonjour,

    J'ai un souci avec une requête dans symfony que je comprend pas.
    J'ai donc la requête qui marche très bien ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $this->titre = Doctrine::getTable('Intitule')
                       ->createQuery('t')
                       ->leftJoin('t.MonTextes c')
                       ->execute();
    Et donc j'ai voulu mettre une limit pour l'affichage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $this->titre = Doctrine::getTable('Intitule')
                       ->createQuery('t')
                       ->leftJoin('t.MonTextes c')
                       ->limit(10)
                       ->execute();
    Et donc mon problème est qu'il ne prend pas en compte ma limit.

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut


    fetchOne() retourne un enregistrement, quel est l'intérêt de limité le retour à un maximum de 10 dans ce cas ?

  3. #3
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    Désolé mais étant débutant sur symfony jai fais divers test et j'ai oublie de remettre execute, donc jai corrigé mais mon probléme est toujours la.

    Merci

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    No problème, mais la question était ... saugrenue !

    Quel est la requête générée en SQL ?

    Tu la trouveras dans la barre de debug de symfony.

  5. #5
    Membre éclairé Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Par défaut
    Sans le limit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT t.id AS t__id, t.id_user AS t__id_user, t.title AS t__title, t.is_public AS t__is_public, t.is_activated AS t__is_activated, t.created_at AS t__created_at, t.updated_at AS t__updated_at, c.id AS c__id, c.id_titre AS c__id_titre, c.chapitre AS c__chapitre, c.page_contenu AS c__page_contenu, c.num_page AS c__num_page, c.created_at AS c__created_at, c.updated_at AS c__updated_at FROM intitule t LEFT JOIN montexte c ON t.id = c.id_titre
    0.01s, "doctrine" connection
    Et avec le limit il me cree une autre requete en plus :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT t.id AS t__id, t.id_user AS t__id_user, t.title AS t__title, t.is_public AS t__is_public, t.is_activated AS t__is_activated, t.created_at AS t__created_at, t.updated_at AS t__updated_at, c.id AS c__id, c.id_titre AS c__id_titre, c.chapitre AS c__chapitre, c.page_contenu AS c__page_contenu, c.num_page AS c__num_page, c.created_at AS c__created_at, c.updated_at AS c__updated_at FROM intitule t LEFT JOIN montexte c ON t.id = c.id_titre WHERE t.id IN ('1')
     
    SELECT DISTINCT t2.id FROM intitule t2 LIMIT 10
    Merci a toi

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Peut-être un peu de doc pour aider : limit and offset clauses in Doctrine.

    Notamment, si on lit la 2ème partie "The limit-subquery-algorithm", on peut voir que la requête générée semble très proche de la tienne cependant que la clause IN inclue, dans leur exemple, une subquery alors que, dans ton exemple, je ne vois pas à quoi le IN('1') fais référence ?

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

Discussions similaires

  1. [2.x] requete avec doctrine
    Par noobie59 dans le forum Symfony
    Réponses: 1
    Dernier message: 10/09/2013, 23h30
  2. Réponses: 1
    Dernier message: 29/06/2010, 15h58
  3. Probleme de date dans requete avec access
    Par pbauquel dans le forum Accès aux données
    Réponses: 2
    Dernier message: 29/04/2009, 11h58
  4. Réponses: 3
    Dernier message: 03/05/2008, 16h44
  5. Cumul de valeur dans requete avec date
    Par OtObOx dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/07/2007, 17h07

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