Bonjour à toutes et à tous ,
une jauge (progress) dans une boucle while
/*Jauge*/
if (!empty($data50["DateLimiteValidite"])){
$recupdt = $data50["date"];
$prepdt = str_split($recupdt, 1);
$date_debut = date("d-m-Y");
$date_fin = $data50["DateLimiteValidite"];
function nbJours($debut, $fin) {
$nbSecondes= 60*60*24;
$debut_ts = strtotime($debut);
$fin_ts = strtotime($fin);
$diff = $fin_ts - $debut_ts;
return round($diff / $nbSecondes);
}
$nbj = nbJours($date_debut, $date_fin);
$nbj_pourprogressBarre = 183-$nbj ;
$pourcentage = $nbj_pourprogressBarre * 100 / 183;
$nbpourcentage = number_format($pourcentage,1);
}
elle fonctionne au premier passage dans la boucle mais pas aux suivants et je ne comprends pas pourquoi elle ne fonctionne qu'une fois ?
Auriez vous une idée s'il vous plait ?
Merci par avance
Bonjour,
1/ Je ne vois de boucle while, ni la progresse bar qui est en qu'elle codage ? (js, html....)
2/ Une fonction ce met au pire en haut d'une page avant de commencer un traitement php ou html, mais pas au milieux du code.
Le mieux serait de la mettre dans un fichier à part qui est insérer une fois au début du code.
Merci
Le while contient trop de code et ça generais la lecture ici....
J'ai mis des echo pour voir les variables :
echo "<tr height='40'>";
echo "<td></td>";
echo "<td bgcolor='#E5E5CC'></td>";
echo "<td bgcolor='#E5E5CC'></td>";
echo "<td bgcolor='#E5E5CC' height='40'>";
/*Jauge*/
if (isset($data50["DateLimiteValidite"])){
$date_debut = date("Y-m-d");
echo $date_debut."<br/>";
$date_fin = $data50["DateLimiteValidite"];
echo $date_fin."<br/>";
$recupdt = $data50["date"];
echo $recupdt."<br/>";
$prepdt = str_split($recupdt, 1);
echo $prepdt."<br/>";
function nbJours($debut, $fin) {
$nbSecondes= 60*60*24;
$debut_ts = strtotime($debut);
$fin_ts = strtotime($fin);
$diff = $fin_ts - $debut_ts;
return round($diff / $nbSecondes);
}
$nbj = nbJours($date_debut, $date_fin);
echo $nbj."<br/>";
$nbj_pourprogressBarre = 183-$nbj ;
echo $nbj_pourprogressBarre."<br/>";
$pourcentage = $nbj_pourprogressBarre * 100 / 183;
echo $pourcentage."<br/>";
$nbpourcentage = number_format($pourcentage,1);
echo $nbpourcentage."<br/>";
}
echo "<font face='verdana' color='#000087' size='2'>Durée de vie de votre annonce :</font></td>";
echo "<td bgcolor='#E5E5CC'></td>";
echo "<td bgcolor='#E5E5CC'></td>";
echo "</tr>";
echo "</table>";
echo "<table border='0' width='903' cellspacing='0' cellpadding='0'>";
echo "<tr height='30'>";
echo "<td width='16'></td>";
echo "<td bgcolor='#E5E5CC' width='90'><font face='verdana' color='#000087' size='2'></font></td>";
echo "<td bgcolor='#E5E5CC' width='20'><font face='verdana' color='#000087' size='2'>1 j</font></td>";
echo "<td bgcolor='#E5E5CC' width='320'><div class='progress'><progress class='progress-bar' role='progressbar' value='".$nbj_pourprogressBarre."' max='183'></progress></div></td>";
echo "<td bgcolor='#E5E5CC' width='250'><font face='verdana' color='#000087' size='2'>183 j<font face='verdana' color='#000087' size='2'> Durée accompli à ".$nbpourcentage." % </font></td>";
echo "<td bgcolor='#E5E5CC'><font face='verdana' color='#000087' size='2'>Vues : <font face='verdana' color='#000087' size='3'>".$data50['compteur']."</font></font></td>";
echo "<td bgcolor='#E5E5CC'></td>";
echo "</tr>";
la première fois le resultat des echo est :
2016-05-10
2016-11-07
20160508
Array
181
2
1.0928961748634
1.1
la deuxième fois :
2016-05-10
2016-11-08
20160509
Array
puis le reste de la page ne s'affiche pas
comment faire si je déplace la fonction ? Comment l'appeler ensuite ?
Bonjour
Admettons que tu déplaces ta/tes fonctions dans un fichier nommé functions.php
Il te suffit de faire un require du fichier functions.php et de l'appeler