scn68100
Messages postés153Date d'inscriptiondimanche 27 août 2006StatutMembreDernière intervention26 décembre 2019
-
1 févr. 2015 à 17:58
scn68100
Messages postés153Date d'inscriptiondimanche 27 août 2006StatutMembreDernière intervention26 décembre 2019
-
2 févr. 2015 à 10:05
Bonjour,
J'ai une page PHP avec un traitement assez "lord" dans une boucle
Lors de son exécution, j'ai une page blanche, avec le sablier dans l'index
L'affichage se fait au bout d'un certain temps, et j'ai tout à la fois le tag H1, le premier ECHO, et la simulation de la barre de progression fait par insertion d'image pratiquement remplie
Est-il possible que la chronologie de l'affichage suive la chronologie de l'exécution ?
C'est-à-dire affichage du tag H1
Puis affichage du premier ECHO "Début de suppression de la table geolitecitylocation"
Puis la vue de la barre de progression par l'affichage successif de l'image
Voici le code
<?php
error_reporting (E_ALL);
require "connexion.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta content="fr" http-equiv="Content-Language">
<title>Creation de la base</title>
</head>
<body>
<h1>Création des bases</h1>
<?php
$Cpt=0;
$Ind=0;
$Fic_Location="GeoLocalisation/GeoLiteCity-Location.csv";
if (file_exists($Fic_Location)) { // IP."|".Page."|".URL."|".Date
if (!$fp = fopen($Fic_Location,"r")) {
echo "Echec de l'ouverture du fichier " . $Fic_Location;
exit;
} else {
// Suppresion des enregistrements déja créés
$reponse = mysqli_query($connexion, "SELECT * FROM geolitecitylocation") or die("CreateBase.php - Erreur à la recherche " .mysqli_error($connexion));
$NbrEng = mysqli_num_rows($reponse);
echo "Début de suppression de la table geolitecitylocation <br>";
if ($NbrEng>0) {
$Cpt=0;
for ($i=0; $i<$NbrEng; $i++) {
$Cpt++;
$Reste=$Cpt % 1000;
if ($Reste==0) {
echo '<img alt="ttt" src="ProgressBar.jpg">';
}
$donnees = mysqli_fetch_array($reponse);
$locid=$donnees['locid'];
set_time_limit ( 360);
$OK=mysqli_query($connexion, "DELETE FROM geolitecitylocation WHERE locid = " . $locid ) or die("CreateBase.php - Erreur à la suppression " .mysqli_error($connexion));
if ($OK===False) {
echo "CreateBase.php - Incident lors de la suppression de la fiche !! " .mysqli_error($connexion) . "<br>";
exit ;
}
}
echo("<br> Suppression geolitecitylocation " . str_pad ($Cpt , 8, $pad_string = " ", STR_PAD_LEFT) . " enregistrements supprimés <br>");
}
} // FIN DU ELSE DE if (!$fp = fopen($Fic_Location,"r"))
fclose($fp); // On ferme le fichier
} // FIN DE if (file_exists($Fic_Location))
echo ("FIN" . "<br>");
?>
</body>
</html>
jordane45
Messages postés37727Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 septembre 2023342 2 févr. 2015 à 01:07
Bonsoir,
Je suis d'accord avec Nhenry.
Mais bon.. si tu tiens tout de même à conserver ton script et afficher au fur et à mesure à l'écran... il te faudra utiliser le tampon de sortie.
Et cela se fait avec ob_start() / ob_flush()
http://php.net/manual/fr/function.ob-flush.php
.
scn68100
Messages postés153Date d'inscriptiondimanche 27 août 2006StatutMembreDernière intervention26 décembre 2019 2 févr. 2015 à 10:05
Bonjour,
Comment les utiliser ? Où les placer ?
Cordialement
SC
scn68100
Messages postés153Date d'inscriptiondimanche 27 août 2006StatutMembreDernière intervention26 décembre 2019 2 févr. 2015 à 08:11
Bonjour,
Merci à NHenry et Jordane pour leur réponse
Le code donné n'était là que pour illustrer le problème
Je vais me pencher sérieusement sur le lien
Cordialement
SC