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

PHP & Base de données Discussion :

Maximum execution time of 30 seconds exceeded in [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut Maximum execution time of 30 seconds exceeded in
    Salut à tous!!
    depuis 2 jours j'ai cette erreur lorsque j’exécute mon script php.
    Erreur :
    Fatal error: Maximum execution time of 30 seconds exceeded in
    J'ai plusieurs reglage sur le fichier :
    C:\wamp\Apache2\bin\php.ini
    et
    C:\wamp\php\php.ini
    mais jusque là rien j'ai toujours la même erreur.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <?php
     
    	if (isset($_POST['Enregistrer'])) 
    	{
     
    			include("connection_BICF_bd.php");
     
    			// On récupère tout le numero maximum de la table agents
    			  $requete = $bdd->query('SELECT ifnull(max(substr( num_pros,7,10))+1,0) as num FROM activites');
    			  $donnees = $requete->fetch();
    			  $numero_prosp =$donnees['num'];
     
    			$num = "BICFAC".$numero_prosp;
    			$verifi = true;
     
    	       while($verifi==true)
    		{
    		    $num = "BICFAC".$numero_prosp;
    			$jour = date('d');
    			$mois = date('m');
    			$annee = date('Y');
    			$heure = date('H');
    			$minute = date('i');
    			$date_saisie=$jour.'/'.$mois.'/'.$annee.' '.$heure.':'.$minute;
    			$login = $_SESSION['login'];
    	      try
    	{
    			  $req=$bdd->prepare('INSERT INTO activites
    			  (
    			  num_pros,
    			  nom_activité,
    			  date_debut,
    			  heure_debut,
                  date_fin,
                  heure_fin,
    			  agt_responsable,
    			  besoin_materiel,	
    			  besoin_financier,
    			  besoin_humain,
    			  info_af_activités,
    			  User_saisie,
    			  Date_saisie
    			  )		  
    			  VALUES
    			  (?,?,?,?,?,?,?,?,?,?,?,?,?)');
    			  $req->execute(array
    			  (
    			  htmlspecialchars("$num"),
    			  htmlspecialchars($_POST['Nom']),
    			  htmlspecialchars($_POST['Date_debut']),
    			  htmlspecialchars($_POST['Heure_debut']),
    			  htmlspecialchars($_POST['Date_fin']),
    			  htmlspecialchars($_POST['Heure_fin']), 
    			  htmlspecialchars($_POST['Responsable']),
    			  htmlspecialchars($_POST['Besoins_M']),
    			  htmlspecialchars($_POST['Besoins_F']),
    			  htmlspecialchars($_POST['Besoins_H']),
    			  htmlspecialchars($_POST['Info_afferente']),
    			  htmlspecialchars("$login"),
    			  htmlspecialchars("$date_saisie")
    			  ));
     
              // Insertion du numero de l'activités et le numero de l'agent dans la table intermediaire
    			  $req=$bdd->prepare('INSERT INTO activites_agent
    			  (
    			  num_pros,
    			  num_agt
    			  )		  
    			  VALUES
    			  (?,?)');
    			  $req->execute(array
    			  (
    			  htmlspecialchars("$num"),
    			  htmlspecialchars($_POST['Responsable'])
    			  ));
    		      echo "<script langage='javascript'>alert('Enregistrement terminé avec succès ...');</script>";
    			  $verifi=false;
    			  redirect('accueil.php'); 
     
    	}
    	   catch(Exception $e)
               {
               $numero_prosp=$numero_prosp+1;
    	       $verifi=true;
               }
      }
    }
     
    ?>

  2. #2
    Membre chevronné

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Billets dans le blog
    1
    Par défaut
    Plus de 30 secondes pour une page web, c'est beaucoup beaucoup beaucoup trop !!

    Tu pars tout simplement dans une boucle infinie... while($verifi==true) <= sûrement celle-ci
    Pourquoi avoir mis cette boucle ?

    Ensuite, tu as sûrement un problème au niveau de la construction de ta requête (au passage, inutile de mettre du htmlspecialchars partout, surtout avec une requête préparée !).
    Sauf que, comme tu ne fais rien avec l'exception que ton erreur aura levée, bah tu continues sur un nouveau tour de boucle, tu as à nouveau l'erreur, et hop re-exception, re-tour de boucle, etc...

    Affiches ton exception (var_dump($e); histoire d'y voir plus clair et pouvoir corriger ta requête en conséquence ?
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut
    Le problème se situait au niveau de l'accent aigu sur " nom_activité"

    Voici le code final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    <?php
     
    	if (isset($_POST['Enregistrer'])) 
    	{
     
    			include("connection_BICF_bd.php");
     
    			// On récupère tout le numero maximum de la table agents
    			  $requete = $bdd->query('SELECT ifnull(max(substr( num_pros,8,10))+1,0) as num FROM activites');
    			  $donnees = $requete->fetch();
    			  $numero_prosp =$donnees['num'];
     
    			$num = "BICFAC".$numero_prosp;
    			$verifi = true;
     
    	       while($verifi==true)
    		{
    		    $num = "BICFAC".$numero_prosp;
    			$jour = date('d');
    			$mois = date('m');
    			$annee = date('Y');
    			$heure = date('H');
    			$minute = date('i');
    			$date_saisie=$jour.'/'.$mois.'/'.$annee.' '.$heure.':'.$minute;
    			$login = $_SESSION['login'];
    	      try
    	   {
    			  $req=$bdd->prepare('INSERT INTO activites
    			  (
    			  num_pros,
    			  nom_activite,
    			  date_debut,
    			  heure_debut,
                  date_fin,
                  heure_fin,
    			  agt_responsable,
    			  besoin_materiel,	
    			  besoin_financier,
    			  besoin_humain,
    			  info_af_activites,
    			  User_saisie,
    			  Date_saisie
    			  )		  
    			  VALUES
    			  (?,?,?,?,?,?,?,?,?,?,?,?,?)');
    			  $req->execute(array
    			  (
    			  htmlspecialchars("$num"),
    			  htmlspecialchars($_POST['Nom']),
    			  htmlspecialchars($_POST['Date_debut']),
    			  htmlspecialchars($_POST['Heure_debut']),
    			  htmlspecialchars($_POST['Date_fin']),
    			  htmlspecialchars($_POST['Heure_fin']), 
    			  htmlspecialchars($_POST['Responsable']),
    			  htmlspecialchars($_POST['Besoins_M']),
    			  htmlspecialchars($_POST['Besoins_F']),
    			  htmlspecialchars($_POST['Besoins_H']),
    			  htmlspecialchars($_POST['Info_afferente']),
    			  htmlspecialchars("$login"),
    			  htmlspecialchars("$date_saisie")
    			  ));
     
              // Insertion du numero de l'activités et le numero de l'agent dans la table intermediaire
    			  $req=$bdd->prepare('INSERT INTO activites_agent
    			  (
    			  num_pros,
    			  num_agt
    			  )		  
    			  VALUES
    			  (?,?)');
    			  $req->execute(array
    			  (
    			  htmlspecialchars("$num"),
    			  htmlspecialchars($_POST['Responsable'])
    			  ));
    		      echo "<script langage='javascript'>alert('Enregistrement terminé avec succès ...');</script>";
    			$verifi=false;
    			  redirect('accueil.php'); 
     
    	}
    	   catch(Exception $e)
               {
               $numero_prosp=$numero_prosp+1;
    	       $verifi=true;
    		   //die('Erreur : '.$e->getMessage());
               }
      }
    }
    ?>
    Merci k'amm pour ta reponse

  4. #4
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    juste en passant ..
    pourquoi ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $jour = date('d');
    			$mois = date('m');
    			$annee = date('Y');
    			$heure = date('H');
    			$minute = date('i');
    			$date_saisie=$jour.'/'.$mois.'/'.$annee.' '.$heure.':'.$minute;
    Alors que ça, ça fait la même chose ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
     $date_saisie = date('d/m/Y H:i');

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut
    Merci camyo pour ce code très simple!! je suis carment aller très loin

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

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