Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/10/2011, 12h16   #1
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 72
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 72
Points : 11
Points : 11
Par défaut temps d'execution d'un script sur un serveur web

bonjour,

voici ci-dessous un petit script que je viens de coder, me permetant d'interroger une base mysql toutes les 30sec et d'afficher le resultat sur la page web.
seulement une fois que je lance le script via une interface web, le resultat m'est affiché une seule fois à l'écran suivi de ce message d'erreur:


Fatal error: Maximum execution time of 30 seconds exceeded in C:\PHP\monscrip.php on line 13

la ligne 13 c'est la ligne juste après l'appel de la fonction sleep(30) dans le script ci-dessous.

quelqu'un pourrait-il m'expliquer pourquoi ai je ce message, qui arrete l'execution de mon script sur le serveur ?

merci d'avance pour vos reponses

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
while(1==1)
  { 
     // partie connexion à la base de données      
    $requete = "select * from matable";
    $execution = mysql_query($requete);
    while($ligne=mysql_fetch_row($execution))
    {
       echo "$ligne[0]...";
    }
    mysql_close();
    sleep(30);
  }
cerco1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 12h40   #2
Invité régulier
 
Inscription : septembre 2008
Messages : 31
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 31
Points : 8
Points : 8
Je ne connait pas la réponse à ta question mais :

Google est ton ami
Epliknot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 13h21   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
en interface web c'est pas fait pour, utilise un cron, ou fait de l'ajax
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 14h17   #4
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
J'aurais tendance à dire que ton sleep de 30 seconde fait en sorte que ton script est exécuté depuis plus de 30 secondes.

Un script PHP n'est pas concu pour être exécuté pendant plus de 30 secondes.
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 18h51   #5
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 72
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 72
Points : 11
Points : 11
merci pour vos reponses assez claires, je comprend alors mieux le pourquoi de ce message d'erreur. cependant je ne m'y connais pas en Ajax, or il semblerai que c'est la solution ideale pour mon problème, il va donc falloir que j'y jette un oeil ne fusse que deja savoir comment ecrire un script qui puisse faire appel a mon script php de façon periodique.
encore merci pour votre aide.
si j'ai des soucis pour la suite je reviendrai

A+
cerco1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 23h32   #6
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
Salut,

au lieu d'essayer d'avoir un script PHP qui tourne à l'infini et qui "soumet" un résultat à toutes les 30 secondes, essaie plutôt:

De faire un javascript, qui lui a un timeout aux 30 secondes. Ce timeout apelle une fonction javascript qui fait une requête AJAX à une page PHP.

Donc la page PHP n'est exécutée que le temps de préparer la réponse (obtenir les données, effectuer un traitement).

La raison pourquoi ca fontionne de cette facon, c'est que le serveur n'à pas à soutenir un immense nombre de connexion de facon inutile.
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2011, 18h30   #7
Membre du Club
 
Inscription : octobre 2011
Messages : 50
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 50
Points : 57
Points : 57
ajoute la ligne :

dans ton code

Mais ca constitue une grosse faille de sécurité et ca ne resoudra pas ton problème , je te conseille d'utiliser un cron. Tu peux faire en sorte que ton script continue meme si l'utilisateur ferme la fenêtre mais ton hébergeur va crie HALTE à la boucl et je trouve ca assez dangereux pour le serveur.
KstorTroy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h52.


 
 
 
 
Partenaires

Hébergement Web