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 :

Symfony sfDoctrinePager et LIMIT de la requête


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 42
    Par défaut Symfony sfDoctrinePager et LIMIT de la requête
    Bonjour,

    J'ai une table mysql avec 5000 lignes. Je veux extraire les dernières 1000 et les paginer avec sfDoctrinePage() à raison de 10 par page.

    Le problème est que pager->setQuery() ignore mon LIMIT et me retourne les 5000 lignes de la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query = "select * from my_table limit 1000";
    $this->pager = new sfDoctrinePager('ma_table', 10);
    $this->pager->setQuery($query);
    Merci pour votre aide

  2. #2
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Je crois que tu n'as pas compris le fonctionnement du pager.

    C'est lui qui gère le limit.
    La requête peu avoir toutes les conditions que tu veux mais pas le limit.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 42
    Par défaut
    Merci, c'est ce que j'ai cru comprendre, les LIMIT sont réécris.

    Mais comment faire dans ce cas pour éviter de charger toutes les 5000 lignes de ma table?
    Il y a bien cette méthode mais elle semble ne rien faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->pager->setMaxRecordLimit(1000);

  4. #4
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Si c'est le pager qui gère ton limit il ne va pas charger les 5000 résultat mais juste le nombre de résultat par page

    c'est pour ça que tu as un limit et un offset.

  5. #5
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 42
    Par défaut
    Mais pour savoir combien de pages retourne ma requête et afficher les liens de navigation entre les pages, genre "<< 1, 2, 3...x >>", il doit bien aller chercher toutes les 5000 lignes, non? Sinon comment savoir le nombre de pages à afficher?

    Ce qui, j'ajoute, ralenti sensiblement ma page

  6. #6
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    ben en faisant un count () de la condition initiale

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/09/2011, 09h58
  2. Limit dans une requête
    Par yamatoshi dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/02/2009, 14h25
  3. Problème de double limite dans une requête mysql
    Par bbbbruno dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/01/2009, 19h21
  4. Taille limite d'une requête SQL
    Par cradleofpain dans le forum VBScript
    Réponses: 2
    Dernier message: 16/05/2007, 14h10
  5. Limites de la requête multitable
    Par picatchou dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 26/11/2006, 15h56

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