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

Doctrine2 PHP Discussion :

Fatal error: Maximum execution time of 30 seconds exceeded


Sujet :

Doctrine2 PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut Fatal error: Maximum execution time of 30 seconds exceeded
    Bonjour,

    J'ai un problème dans plusieurs formulaires pour lesquels j'ai ce type d'erreur lorsque je charge des listes déroulantes. Ces listes se basent sur la fonction findAll() du repository d'un objet. Or, dans ma base de données, pour certaines tables, j'ai 37000 enregistrements.

    Lorsque je fais un select all via mon gestionnaire de bdd dans cette table, il met 0.0006 sec pour donner le résultat. Comment se fait-il que je passe en timeout via findAll()?

    Merci d'avance pour votre réponse.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Tu veux afficher une liste déroulante avec 37000 options ?

    le temps d'execution de la requete par le SGBD est rapide effectivement, mais le traitement PHP ne le sera pas.
    Doctrine parcours les 37000 lignes de résultats pour instancier des Entités
    Twig parcours les 37000 lignes de résultats pour générer la sortie Html
    Donc c'est long...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Jete un coup d oeil ici : https://github.com/Gregwar/FormBundle

    Ce n est pas encore dans symfony mais cela devrait venir : https://github.com/symfony/symfony/pull/1951
    Un petit si la réponse convient. Merci.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Merci pour vos interventions...

    Je vous donne un exemple de formulaire qui consiste en la possibilité d'enregistrer une nouvelle localité. Une localité appartient à une commune. Donc, lors de l'enregistrement, l'utilisateur (administrateur) doit encoder dans un champ texte le nom de la localité et, dans une liste déroulante, choisir la commune d'appartenance. Or, ma table 'Commune' contient plus de 37000 enregistrements. Donc, au moment du chargement du formulaire, les 37000 communes sont chargées (car mon champ est basé sur l'entité 'Commune'). Même si il est possible, une fois le formulaire chargé, de les filter en choisissant un pays, une province ou un département, au moment du chargement, il n'est pas possible de les filtrer.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Comme dit plus haut, tu ne peux utiliser le type 'entity' (pour l'instant) vu qu'il charge tous les enregistrements pour l'afficher.
    Une solution provisoire est de mettre un champ hidden avec une autocompletion en javascript. Tu chargeras ton entité dans ton controller... Ce ne sera pas automatique mais au moins cela fonctionnera.
    Un petit si la réponse convient. Merci.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Bonjour et merci beaucoup pour ton investissement sur ce forum

    J'ai, entre-temps (et grâce à ton aide encore, cfr problème de cache de mon navigateur), trouvé une solution : dans le controller, avant d'appeler le formulaire et en fonction d'un critère que je devrai encore déterminer, un pays et une région de référence seront choisis et serviront de filtre initial aux communes.

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

Discussions similaires

  1. Wamp - Fatal error: Maximum execution time of 300 seconds
    Par sam soul dans le forum Débuter
    Réponses: 19
    Dernier message: 26/11/2013, 22h07
  2. [Wamp] Erreur instantannée -> Fatal error: Maximum execution time of 30 seconds exceeded
    Par Villon dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/12/2012, 10h56
  3. [Joomla!] Installation composant:Fatal error: Maximum execution time
    Par copin dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/06/2008, 13h38
  4. Réponses: 4
    Dernier message: 21/07/2006, 15h33

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