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 :

Executer des scripts simultanement


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Vinceee38
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut Executer des scripts simultanement
    Bonjour à tous,

    Je fais appel à vous car je n'arrive pas à trouver de solutions en cherchant sur le web.

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    include('includes/bdd.php');
     
    $delete1 = mysql_query("DELETE FROM event");
    $delete2 = mysql_query("DELETE FROM market");
    $delete3 = mysql_query("DELETE FROM selection");
     
    include("ressources/BASE.php");
    include("ressources/premier.php");
    include("ressources/deuxieme.php");
    Je souhaite executer le script BASE.php en premier et attendre qu'il soit terminé! Jusqu'à la tout va bien.

    Le problème c'est qu'une fois BASE.php exécuté je souhaiterais exécuter premier.php et deuxieme.php en même temps pour gagner du temps...

    C'est trés important pour moi. J'espère que vous pouvez m'aider.

    Cdt,

    Toregua

  2. #2
    Membre confirmé Avatar de Vinceee38
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut
    J'ai trouvé une solution partielle qui est de mettre les script dans des IFRAME:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include("ressources/BASE.php");
    echo "<IFRAME src=\"ressources/premier.php\" width=600 height=100 scrolling=auto frameborder=1 > </IFRAME>";
    echo "<IFRAME src=\"ressources/deuxieme.php\" width=600 height=100 scrolling=auto frameborder=1 > </IFRAME>";
    C'est pas super mais c'est peut etre la seule solution ... j'attends vos propals

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Une possibilité est de lancer les script avec php.exe et la commande exec().

    Sur les systemes windows il faut parfois ruser pour que la commande exec n'attende pas la fin de l'execution mais dans la logique, c'est déja plus serieux que les frames
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé Avatar de Vinceee38
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut
    Effectivement j'imagine que ca peut être que plus propre lol

    Je vais essayer de me pencher sur le fameux exec()! Si jamais tu as un mini tutorial qui traine je suis preneur

    Bonne soirée

  5. #5
    Membre confirmé Avatar de Vinceee38
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut
    En fait j'ai une question ! Comment est ce que je peux gérer la priorité et faire en sorte que les deux scripts de la fin s'execute qu'une fois que BASE.php à été éxecuté ? Sachant que je vais les executer periodiquement...Merci d'avance

    Ce code me semble bien mais je ne vois pas comment gerer la priorité que je cherche à faire:

    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
    	 function PsExecute($command, $timeout = 60, $sleep = 2) {
    			// First, execute the process, get the process ID
    			$pid = PsExec($command);
     
    			if( $pid === false )
    				return false;
     
    			$cur = 0;
    			// Second, loop for $timeout seconds checking if process is running
    			while( $cur < $timeout ) {
    				sleep($sleep);
    				$cur += $sleep;
    				// If process is no longer running, return true;
     
    			   echo "\n ---- $cur ------ \n";
     
    				if( !PsExists($pid) )
    					return true; // Process must have exited, success!
    			}
     
    			// If process is still running after timeout, kill the process and return false
    			PsKill($pid);
    			return false;
    		}
     
    		function PsExec($commandJob) {
     
    			$command = $commandJob.' > /dev/null 2>&1 & echo $!';
    			exec($command ,$op);
    			$pid = (int)$op[0];
     
    			if($pid!="") return $pid;
     
    			return false;
    		}
     
    		function PsExists($pid) {
     
    			exec("ps ax | grep $pid 2>&1", $output);
     
    			while( list(,$row) = each($output) ) {
     
    					$row_array = explode(" ", $row);
    					$check_pid = $row_array[0];
     
    					if($pid == $check_pid) {
    							return true;
    					}
     
    			}
     
    			return false;
    		}
     
    		function PsKill($pid) {
    			exec("kill -9 $pid", $output);
    		}
    Et je ne vois pas non plus comment je peux executer mon script php dans la fonction PsExecute dans $command

    edit: je reflechis en meme temps lol ! Je viens de comprendre! en utilisant php.exe comme tu me la dit... excuse moi

    Sinon comment est ce que je pourrais faire quand j'hebergerais mon site sur un serveur ? je peux procéder de la meme maniere ?

    Merci bcp sabotage en tout cas

    Par contre pour les priorités cela reste une interrogation

  6. #6
    Membre confirmé Avatar de Vinceee38
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Par défaut
    Quand j'essaye d'exécuter simplement cette commande dans cmd de windows:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\EasyPHP 2.0b1\php5\php.exe" "C:\Program Files\EasyPHP 2.0b1\www\test\ressources\BASE.php"
    Voici l'erreur que j'obtient dans la console :
    Fatal error: Call to undefined function mysql_query() in .... ***.php

    Alors que mon script fonctionne trés bien ! Je ne comprend pas! Je prend peut etre pas le bon exe ?

Discussions similaires

  1. Executer des scripts perl en CGI
    Par Pedro87 dans le forum Web
    Réponses: 3
    Dernier message: 09/03/2009, 21h54
  2. Comment éviter le message IE7 : restriction d'execution des scripts .etc.
    Par phil2776 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/09/2008, 12h28
  3. Executer des script perl dans une url
    Par Spy*** dans le forum Langage
    Réponses: 0
    Dernier message: 17/03/2008, 12h52
  4. XMLRAD2006 : Problème d'execution des scripts JScript
    Par m-matthieu dans le forum XMLRAD
    Réponses: 11
    Dernier message: 04/07/2006, 11h54
  5. [VB6] Executer des script SQL
    Par Sytchev3 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 28/02/2006, 16h05

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