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

Langage PHP Discussion :

[Système] Foreach - Maximum execution time of 30 seconds


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut [Système] Foreach - Maximum execution time of 30 seconds
    Bonjour,

    j'ai un probleme dans la boucle d'une fonction dont je me sert dans un script de recherche dans une base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function GetMaxMCCarRef ($array)			// Renvoie le nb max de mots clés + caractéristiques référençant un résultat de la recherche
    {
    	$max	=	0;
     
    	foreach ( $array as $elem )
    	{
    		if ( ($elem[2] + $elem[3]) > $max ) $max = ($elem[2] + $elem[3]) ;
    	}
    	return $max;
     
    }
    Le tableau passé en paramètre n'est pas continu (des elements sont vides) c'est pourquoi j'ai opté pour un foreach plutot qu'un for.
    Mais certaines fois, j'ai un Fatal error (maximum execution time...) sur la ligne du foreach. Comment pourrais-je arranger ça?

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Si le foreach entraine un dépassement du temps limite, à part réduire la taille de ton tableau il n'y a pas grand chose que tu puisses faire
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    En ce cas, y aurait-il une solution plus adaptée sachant que le tableau est grand puisqu'il contient les résultats de la recherche?

    Ou alors peut on augmenter le maximum execution time? Juste pour savoir si c'est beaucoup de temps qu'il faut ou si tout simplement le foreach ne finit jamais ^^

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    tu peux peut-être augmenter le time_limit (ça peut être interdit selon la config du serveur) avec : avant ton foreach

    mais foreach, de part ce qu'il fait ne peut pas être infini
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    oui on peut augmenter un ti coup de rechercher...

    bon voila ce que tu doi modifier ds ton php.ini
    ;;;;;;;;;;;;;;;;;;;
    ; Resource Limits ;
    ;;;;;;;;;;;;;;;;;;;

    max_execution_time = 60 ; Maximum execution time of each script, in seconds
    max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
    memory_limit = 100M ; Maximum amount of memory a script may consume (8MB)


    Adapte les valeurs a ton utilisation perso voila
    Stay in Bed .. Save Energy

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Ok merci merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/10/2012, 12h46
  2. Fatal error: Maximum execution time of 30 seconds exceeded
    Par dubitoph dans le forum Doctrine2
    Réponses: 5
    Dernier message: 19/12/2011, 08h47
  3. [EasyPHP] Maximum execution time of 3000 seconds exceeded
    Par laurentSc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 22/11/2011, 11h51
  4. [MySQL] Maximum execution time of 300 seconds exceeded
    Par 19cmos83 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/06/2009, 04h45

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