Bonjour !
Je cherche un moyen, en PHP, d'attendre la fin d'une instruction avant d'en commencer une autre.
Est-ce que quelqu'un a une idee ?
Merci !
-----
Bonjour !
Je cherche un moyen, en PHP, d'attendre la fin d'une instruction avant d'en commencer une autre.
Est-ce que quelqu'un a une idee ?
Merci !
En PHP, les instructions s'executent les unes après les autres...
Peux tu préciser ce que tu veux faire ?
Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Bonjour Zoup !
Voila plus exactement le souci :
Je crée des images redimensionnées par un code php qui me sort une "imagejpeg"
Sur une autre page, j'ai une boucle qui qui envoit une photo vers cette page de redimensionnement, et qui la recupere pour l'afficher.
Mais la boucle va trop vite et la page de redimensionnement n'a pas le temps d'envoyer son resultat que la boucle est deja dans une autre iteration... d'ou petite croix rouge...
Si je mets un "sleep" entre chaque iteration, la pas de probleme. mais sleep c'est 1 seconde minimum, et du coup ca devient long...
la ligne de code de la boucle :
Code:echo ''.$donnees['Photo_Adresse'].'<br /> <img src="redimage.php?rimage='.$donnees['Photo_Adresse'].'"> <br />-------<br />';
Bonjour,
c'est "redimage.php" qui redimenssionne l'image ?
Cela me semble pourtant correct. La balise <img></img> devrait attendre que "redimage.php" ait fini son travail pour afficher quelque chose...
Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Oui c'est "redimage.php" qui renvoie l'image mise en parametre "rimage=" redimensionnée...
Le probleme n'apparait que sous IE je remarque... FF fait plutot bien le boulot.
IE "saute" une ou plusieurs images si ca va trop vite...
Aie, si cela devient browser dépendant on est mal barré...
Pour amplifier le phénomène tu pourrais faire en sorte que le script PHP (redimage.php) ne revoie rien avec un temps relativement long. Est-ce que cela continue à fonctionner avec FF ?
Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Je ne sais pas si je comprend bien ce que tu me propose :
Faire en sorte que redimage.php ne renvoie rien, mais avec un temps assez long ? C'est ca ?
Je met le code qui appelle redimage.php, si ca peut aider...
Code:<?php mysql_connect("xxxx", "xxxxx", "xxxxx"); mysql_select_db("xxxxxx"); $sql = 'SELECT * FROM TB_Photo'; $reponse = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); while ($donnees = mysql_fetch_array($reponse)) { echo $donnees['Photo_Adresse'].'<br /><img src="redimage.php?rimage='.$donnees['Photo_Adresse'].'"><br />-------<br />'; } mysql_close(); ?>
Si il faut qu'il renvoie l'image de la même façon mais seulement au bout de 1 seconde par exemple. Tu mets un sleep dedans par exemple.
Le but c'est de voir comment tout cela réagit. En particulier, je voudais savoir si FireFox continue de fonctionner correctement ou pas.
Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Ce fut fait, resultat idem...
Je viens d'essayer le bazard sur un autre pc sous IE, et... ca passe nickel.
Le probleme ne serait que sur mon pc...
Cela marche même en mettant un tems long ?
Il y a peut-être alors un reglage de timeout qui est trop court sur ton IE.
Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
Salut Guigui,
juste un mot pour te dire que, si j'ai bien compris ce que tu cherches à faire, j'aurais procédé différemment:
- En début de script, génération de toutes les images dont tu as besoin avec stockage sur le disque-dur (ce qui pourrait éventuellement tu permettre de ne pas regénérer l'image, si ça a déjà été fait avant), avec un nom différent pour chaque photo (genre: ancien-nom_tiny.jpg)
- Affichage ensuite de l'image, comme n'importe quelle autre...
Si cette façon de faire est compatible avec ce que tu veux, je crois que tu y gagnerais beaucoup...
Bonne chance.
Ca fait pareil meme en mettant un temps long... Ca doit etre mon IE qui deconne...Cela marche même en mettant un tems long ?
Il y a peut-être alors un reglage de timeout qui est trop court sur ton IE.
Salut Faith !- En début de script, génération de toutes les images dont tu as besoin avec stockage sur le disque-dur (ce qui pourrait éventuellement tu permettre de ne pas regénérer l'image, si ça a déjà été fait avant), avec un nom différent pour chaque photo (genre: ancien-nom_tiny.jpg)
- Affichage ensuite de l'image, comme n'importe quelle autre...
Elle me plait bien ton idee... Comment tu ferais ca ?
En pseudo code:
Si tu veux savoir comment stocker l'image dans un fichier plutôt que de l'afficher directement, il faudrait voir le contenu de redimage.php.Code:Connexion à la base de donnée Selection des images dans la DB Boucle pour toutes les images sélectionnées { Générer le nom de la miniature Vérifier si une miniature de ce nom existe déjà dans le répertoire XXX Si elle n'existe pas : Créer la miniature (même chose que fait redimage.php, sauf qu'il faut changer un paramètre pour envoyer l'image dans un fichier -> voir la doc) } Boucle pour toutes les images sélectionnées { Afficher l'image de la miniature. }
Ah ok, je pensais que tu voulais dire créer les miniatures sur le disque dur du client...
Sinon je connais la technique pour le faire sur le serveur, mais le but est de pouvoir parametrer les dimensions, donc ca ferait trop de miniatures... d'ou l'obligation de la créer "in line"...
Salut,
Pour mon générateur d'image en PHP (il redimentionne et optimise des JPEG pour le WEB) j'utilise une redirection pour qu'il affiche les images crées dans une nouvelle page, ce qui garanti que le script s'execute avant d'afficher meme si la raison a tout cela n'etait pas le meme probleme que tu rencontre je pense que cela peut resoudre ton probleme ...
en php si tu envois pas de html:
header("Location: page_affiche_jpg.php");
Ou bien en javascript si tu veux par exemple afficher les images une fois traité dans ton html
<SCRIPT LANGUAGE="JavaScript">
document.location.href="page_a ffiche_jpg.php"
</SCRIPT>
Si tu travaille sur une bouche de plusieurs images a traiter tu devras faire passer une variable qui contindra les url de tes images nouvellement traités dans ton url..
Dans un tableau par exemple
$img[]=1.jpg;
$img[]=2.jpg;
$img[]=3.jpg;
etc