Je rencontre un problème avec mon array dans une boucle WHILE
J'arrive pas a retrouver une donnée enregistrée dans le tableau array dans la boucle while qui précède. J'ai tenté avec in_array et array_search mais sans résultats
$reponse = "SELECT stock_encours FROM stock_silo" ;
$req = mysql_query($reponse) or die('Erreur SQL !<br />'.$reponse.'<br />'.mysql_error());
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
$stock_actuel = $data['stock_encours'] ;
echo "Stock actuel : $stock_actuel" ; ?></br><?php
$today = date("Y-m-d");
$indice = 0 ;
$nb_jour = 0 ;
$num_bat = 1 ;
$nb_bat = 0 ;
$Calcul_jour = "début" ;
$stockage_jr_restant = array() ;
while($stock_actuel >= 0){
//Calcul du nombre de jour restant en se basant sur la consommation théorique restante après les jours passés.
//On enlève le batiment 4 car il n'existe pas
if($num_bat==4){
$num_bat = 5 ;
}
if($num_bat>5){
$num_bat = 1 ;
}
$sqlBoucle = "SELECT * FROM entrees WHERE batiment = $num_bat" ;
$reqBoucle = mysql_query($sqlBoucle) or die('Erreur SQL !<br />'.$sqlBoucle.'<br />'.mysql_error());
//while ($dataBoucle = mysql_fetch_array($reqBoucle)) {
$dataBoucle = mysql_fetch_array($reqBoucle) ;
$date_entree = $dataBoucle['date'] ;
$batiment = $dataBoucle['batiment'] ;
$nb_vx = $dataBoucle['nb_veaux_reel'] ;
if($nb_bat >= 5){
$nb_bat = 1 ;
}
echo "num_bat = $num_bat" ;?></br><?php
if(array_search("bat_$num_bat", $stockage_jr_restant)){
$nJours_restant = ($stockage_jr_restant["bat_$num_bat"]+1) ;
$stockage_jr_restant["bat_$num_bat"] = $nJours_restant ;
echo "Jour trouvé dans tableau ligne 61 : $nJours_restant" ; ?></br><?php
}else{
//Ce code ne s'éxécutera que les 5 premières fois pour enregistrer les dates de départ pour chaque bâtiment
// On transforme les 2 dates en timestamp
$date1 = strtotime($today);
$date2 = strtotime($date_entree);
// On récupère la différence de timestamp entre les 2 précédents
$nbJoursTimestamp = $date1 - $date2;
// ** Pour convertir le timestamp (exprimé en secondes) en jours **
// On sait que 1 heure = 60 secondes * 60 minutes et que 1 jour = 24 heures donc :
$nbJours = $nbJoursTimestamp/86400; // 86 400 = 60*60*24
//$nJours_restant = (168 - $nbJours) ;
$nJours_restant = $nbJours ;
echo "Pas trouvé dans le tableau bat_$num_bat" ; ?></br><?php
echo "diff jour : $nbJours" ; ?></br><?php
/*
$stockage_jr_restant = array(
"bat_$num_bat" => "$nJours_restant",
);
*/
$stockage_jr_restant["bat_$num_bat"] = $nbJours ;
echo $stockage_jr_restant["bat_$num_bat"] ;
}
//selon l'heure du calcul pour savoir s'il reste un repas aujourd'hui ou si on ajoute un jour suivant pour calcul à partir du repas du lendemain matin
//nJours_suivant est un entier = nbJours +0
echo "Jour suivant restant : $nJours_restant" ; ?></br><?php
$reponseCumul = "SELECT quantite_cereale FROM plan_alimentation_theorique WHERE jour = $nJours_restant" ;
$reqCumul = mysql_query($reponseCumul) or die('Erreur SQL !<br />'.$reponseCumul.'<br />'.mysql_error());
$donneesCumul = mysql_fetch_array($reqCumul);
$quantite_cereale = $donneesCumul['quantite_cereale'] ;
//Multiplié par 2 repas par jour et multiplié par le nombre de veaux dans le bâtiment
//Conso restant en gramme
$xNConso_theo_restante = (($quantite_cereale*2)*$nb_vx) ;
//conversion en kilo
$xNConso_theo_restante = round(($xNConso_theo_restante/1000),2) ;
$stock_actuel = round($stock_actuel - $xNConso_theo_restante,2) ;
echo "Stock actuel : $stock_actuel" ; ?></br><?php
if($nb_bat==4){
$nb_jour++;
}
if($stock_actuel <= 0 ){
break ; //sortir de la boucle
echo "Nombre de jour restant en stock : $nb_jour" ;
}else{
$nb_bat++ ;
$num_bat++ ;
echo "nb_bat : $nb_bat" ;?></br><?php
echo "num_bat 2 = $num_bat" ;?></br><?php
}
//}
echo $stockage_jr_restant["bat_5"] ;
$indice++ ;
echo "Indice : $indice" ; ?></br></br><?php
}
echo "Nombre de jour restant en stock lig 143: $nb_jour" ;
mysql_close() ;
?>
J'ai mis des echo un peu partout pour essayer de trouver le problème mais la je sèche !Après dans un deuxième temps je ne sais pas si mon code est performant au niveau des requête sql ou peut-être il y a -t-il des améliorations à faire...
Je vous remercie d'avance pour votre aide !