Optimisation du code

Résolu/Fermé
MiWi86-33 Messages postés 142 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 20 juin 2011 - 27 août 2009 à 10:26
MiWi86-33 Messages postés 142 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 20 juin 2011 - 27 août 2009 à 11:00
Bonjour,

J'ai comme page :
dateprecedente.php

<?PHP
include('secure.php');	
include('xmlparser.php');
include('xml.php');
no_cache();

// CONNEXION MYSQL
connexion();
	
$id = $_GET["id"];
$aDay = array(1 =>"Monday", 2 =>"Tuesday", 3 =>"Wednesday", 4 =>"Thursday", 5 =>"Friday", 6 =>"Saturday", 7 =>"Sunday");
$DDay = array(1 =>"Lundi", 2 =>"Mardi", 3 =>"Mercredi", 4 =>"Jeudi", 5 =>"Vendredi", 6 =>"Samedi", 7 =>"Dimanche");	
	
echo "<span style='font-family : verdana; font-size : 12px;'>";
if (!empty($gfullname))
	echo "Bonjour $gfullname";
else
	echo "Bonjour $gpseudo";
		
echo "</span>";	
echo "<hr size=0><br>";
	
// On recherche tous les établissements installés pour ce client
$sRequete = "select * from licence where pseudo='".$gpseudo."'";
$results=requete($sRequete);
	
// Si aucune établissement n'est trouvé
if(mysql_num_rows($results)==0)
{		
	echo "<span style='font-family : verdana; font-size : 12px;'>";
	echo "Aucun établissement à afficher";		
	echo "</span>";
	echo "<br><br>";
	echo "<input type='button' onclick='javascript:document.location.reload();' value='Actualiser'>";						
}
else
{	
	echo "</span>";
	echo "<span style='font-family : verdana; font-size : 25px;'>Votre tableau de bord de la semaine - Orchestra Web Manager</span>";		
	echo "<br><br>";
			
		
	$nNbFichiers = 0;		
	$i = date("w");
	echo $i;
	
	while($i>0)
	{
		echo '<table border="0" cellpadding="5" cellspacing="1" bgcolor="#999999"  style="font-family : verdana; font-size : 12px;">';
		echo '<tr valign="top"><td style="font-weight:bold;" bgcolor="#DDDDDD">Données de gestion</td>';
		$dda = $aDay[$i];
		$ddate = $DDay[$i];
		
		echo "<b>".$ddate."</b>";
		// AFFICHAGE DE LA LIGNE TITRES
		for($r=0; $r<mysql_num_rows($results); $r++)
		{
			$sLicence = mysql_result($results,$r,"cleident");
			$sNom = mysql_result($results,$r,"nom");
		  
			// Lecture des données ([licence].xml)
			$sFileName = "upload/".$sLicence."/".$dda.".xml";
			
			if (file_exists($sFileName))
			{
				$sJour = $aDay[date("w", filemtime($sFileName))];
				
				// Ajoute la date et l'heure du fichier
			 	$sTime = $sJour.", ".date("d/m/Y H:i", filemtime($sFileName));
			 				 
		  		echo "<td align='right' bgcolor='#DDDDDD' style='padding :5px;' nowrap>";
		  		echo "<b>$sNom</b>";
		  		echo "<br>";
		  		echo "<span style='font-size : 10px;'>";
		  		echo $sTime;
		  		echo "</span>";
		  		echo "</td>";
		  	
		  		$nNbFichiers++;
			}
		}
		
		if ($nNbFichiers>1)
			echo "<td align='right' width='100' bgcolor='#DD3333' style='color: #FFFFFF; font-weight:bold; padding :5px;' nowrap>Totaux</td>";
			echo "</tr>";

		// MEMORISATION DES TITRES ET VALEURS
		$asTitres = array();
		$asValeurs = array();
		
		// On récupère les titres et les valeurs
		ChargeTableaux($results, $asTitres, $asValeurs, $dda);
		
		// Si aucun fichier n'a été trouvé
		if (empty($asTitres))
		{	
			echo "</table><br><br><span style='font-family : verdana; font-size : 12px;'>Aucunes données n'a été transmises pour le moment</span>";
			echo "<br><br>";
			echo "<input type='button' onclick='javascript:document.location.reload();' value='Actualiser'>";						
		}
		else
		{		
			// AFFICHAGE DE CHAQUE LIGNE
			$nTotalLignes = count($asTitres);				
			for ($j=0;$j<$nTotalLignes; $j++)
			{
				$sTitre = $asTitres[$j];
					
				if ($j%2>0)
					$sBGColor = "#F5F5F5";
				else
					$sBGColor = "#FFFFFF";
					
				echo "<tr><td bgcolor='$sBGColor' style='padding :5px;' nowrap>".$sTitre."</td>";
				
				$rTotal = 0;
				foreach($asValeurs[$j] as $rValue)
				{
					$rTotal += $rValue;
					
					echo "<td align='right' style='padding :5px;' bgcolor='$sBGColor'>".$rValue."</td>";				
				}
				
				if ($nNbFichiers > 1)
				{
					$sTotal = sprintf("%.02f", $rTotal);
									
					echo "<td align='right' style='padding :5px;' bgcolor='#FFCCCC'>".$sTotal."</td>";
				}
				
				echo "</tr>";
			}
			
			if ($nNbFichiers>1)
				$nCols = $nNbFichiers+2;
			else
				$nCols = $nNbFichiers+1;
			
			echo "<tr><td align='right' colspan=".($nCols)." bgcolor=#999999>";
			echo "<input type='button' onclick='javascript:document.location.reload();' value='Actualiser'>";				
			echo "</td></tr>";
			
			echo "</table><br><br>";
		}
		$i=$i-1;
	}
		
	$t=7;
	$i = date("w");
		
	while($i<$t)
	{
		echo '<table border="0" cellpadding="5" cellspacing="1" bgcolor="#999999"  style="font-family : verdana; font-size : 12px;">';
		echo '<tr valign="top"><td style="font-weight:bold;" bgcolor="#DDDDDD">Données de gestion</td>';
		$dda = $aDay[$t];
		$ddate = $DDay[$t];
		echo "<b>".$ddate."</b>";
		// AFFICHAGE DE LA LIGNE TITRES
		for($r=0; $r<mysql_num_rows($results); $r++)
		{
			$sLicence = mysql_result($results,$r,"cleident");
			$sNom = mysql_result($results,$r,"nom");
		  
			// Lecture des données ([licence].xml)
			$sFileName = "upload/".$sLicence."/".$dda.".xml";
			
			if (file_exists($sFileName))
			{
				$sJour = $aDay[date("w", filemtime($sFileName))];
				
				// Ajoute la date et l'heure du fichier
			 	$sTime = $sJour.", ".date("d/m/Y H:i", filemtime($sFileName));
			 				 
		  		echo "<td align='right' bgcolor='#DDDDDD' style='padding :5px;' nowrap>";
		  		echo "<b>$sNom</b>";
		  		echo "<br>";
		  		echo "<span style='font-size : 10px;'>";
		  		echo $sTime;
		  		echo "</span>";
		  		echo "</td>";
		  	
		  		$nNbFichiers++;
			}
		}
		
		if ($nNbFichiers>1)
			echo "<td align='right' width='100' bgcolor='#DD3333' style='color: #FFFFFF; font-weight:bold; padding :5px;' nowrap>Totaux</td>";
			echo "</tr>";

		// MEMORISATION DES TITRES ET VALEURS
		$asTitres = array();
		$asValeurs = array();
		
		// On récupère les titres et les valeurs
		ChargeTableaux($results, $asTitres, $asValeurs, $dda);
		
		// Si aucun fichier n'a été trouvé
		if (empty($asTitres))
		{	
			echo "</table><br><br><span style='font-family : verdana; font-size : 12px;'>Aucunes données n'a été transmises pour le moment</span>";
			echo "<br><br>";
			echo "<input type='button' onclick='javascript:document.location.reload();' value='Actualiser'>";						
		}
		else
		{		
			// AFFICHAGE DE CHAQUE LIGNE
			$nTotalLignes = count($asTitres);				
			for ($j=0;$j<$nTotalLignes; $j++)
			{
				$sTitre = $asTitres[$j];
					
				if ($j%2>0)
					$sBGColor = "#F5F5F5";
				else
					$sBGColor = "#FFFFFF";
					
				echo "<tr><td bgcolor='$sBGColor' style='padding :5px;' nowrap>".$sTitre."</td>";
				
				$rTotal = 0;
				foreach($asValeurs[$j] as $rValue)
				{
					$rTotal += $rValue;
					
					echo "<td align='right' style='padding :5px;' bgcolor='$sBGColor'>".$rValue."</td>";				
				}
				
				if ($nNbFichiers > 1)
				{
					$sTotal = sprintf("%.02f", $rTotal);
									
					echo "<td align='right' style='padding :5px;' bgcolor='#FFCCCC'>".$sTotal."</td>";
				}
				
				echo "</tr>";
			}
			
			if ($nNbFichiers>1)
				$nCols = $nNbFichiers+2;
			else
				$nCols = $nNbFichiers+1;
			
			echo "<tr><td align='right' colspan=".($nCols)." bgcolor=#999999>";
			echo "<input type='button' onclick='javascript:document.location.reload();' value='Actualiser'>";				
			echo "</td></tr>";
			
			echo "</table><br><br>";
		}
	$t--;
	}
		
}
echo "<br>";
echo "<a style='font-family : verdana; font-size : 12px;' HREF=\"javascript:window.close()\">Fermer la fenêtre</a>";
echo "<br><br><hr size=0>";
	
	
function ExtraitItem($paArray, $psBlocName)
{		
	while (list($sKey, $aValue) = each($paArray))
	{
		if (strtolower($sKey) == $psBlocName)
		{
			return $aValue;
		}
	}
		
	return null;
}
	
function ChargeTableaux($pRequest, &$pasTitres, &$pasValeurs, &$date)
{		
	$bFirst = true;
				
	// On utilise le premier fichier pour récupérer la liste des titres
	// Pour chaque établissement, on affiche les titres
	for($i=0; $i<mysql_num_rows($pRequest); $i++)
	{
		
		$sLicence = mysql_result($pRequest, $i,"cleident");
				
			
		// Lecture des données ([licence].xml)
		$sFileName = "upload/".$sLicence."/".$date.".xml";
		if (file_exists($sFileName))
		{				
			$bAtLeastOne = true;
		
			// On charge le contenu du fichier	
			$sContent = file_get_contents($sFileName);
			$aData = XML_unserialize($sContent);
						
			// On extrait le bloc principal et les titres
			$aBloc = ExtraitItem($aData, "bloc");
			$aTitres = ExtraitItem($aBloc, "titres");
			$aValeurs = ExtraitItem($aBloc, "valeurs");
		
			if ($bFirst)
			{					
				// On récupère tous les titres et les stoque dans le tableau $pasTitres
				$j=1;
				$sTitre = ExtraitItem($aTitres, "titre".$j);
				while ($sTitre != null)
				{
					$pasTitres[] = $sTitre;
					$j++;
					$sTitre = ExtraitItem($aTitres, "titre".$j);
				}
				
				$bFirst = false;
			}
				
			// On récupère toutes les valeurs et les stoque dans le tableau $pasValeurs
			$j=1;
			$sValeur = ExtraitItem($aValeurs, "valeur".$j);
			while ($sValeur != null)
			{
				$pasValeurs[$j-1][] = str_replace(",", ".", $sValeur);
				$j++;
				$sValeur = ExtraitItem($aValeurs, "valeur".$j);
			}						
		}
		
	}
		
}
?>

et en faite, en fois que le code qu'il y a entre les boucle while($i>0) et while($i<$t) sont les mêmes ... je ne vois pas trop comment faire...
je pensais créer un premier tableau :
$DDay = array(1 =>"Lundi", 2 =>"Mardi", 3 =>"Mercredi", 4 =>"Jeudi", 5 =>"Vendredi", 6 =>"Samedi", 7 =>"Dimanche");	
	

et un deuxième tableau vide que je remplirais 7 étant le aujourd'hui, 6 hier, 5 avant hier ... mais je ne vois pas trop comment le faire...

enfin, si je ne suis pas assez clair, n'hésitez pas à poser des questions...

merci d'avance
A voir également:

1 réponse

MiWi86-33 Messages postés 142 Date d'inscription vendredi 8 août 2008 Statut Membre Dernière intervention 20 juin 2011 9
27 août 2009 à 11:00
$aDay = array(1 =>"Monday", 2 =>"Tuesday", 3 =>"Wednesday", 4 =>"Thursday", 5 =>"Friday", 6 =>"Saturday", 7 =>"Sunday");

if(mysql_num_rows($results)==0)
{		
	echo "<span style='font-family : verdana; font-size : 12px;'>";
	echo "Aucun établissement à afficher";		
	echo "</span>";
	echo "<br><br>";
	echo "<input type='button' onclick='javascript:document.location.reload();' value='Actualiser'>";						
}
else
{	
	echo "</span>";
	echo "<span style='font-family : verdana; font-size : 25px;'>Votre tableau de bord de la semaine - Orchestra Web Manager</span>";		
	echo "<br><br>";
			
	$nNbFichiers = 0;		
	$i = date("w");
	echo $i;
	$index=1;
	$table=array();
	while($i>0)
	{
		$table[$index]=$aDay[$i];
		$index++;
		$i--;
	}
	$index2 = 7;
	$i = date("w");
	while($i<$index2)
	{
		$table[$index]=$aDay[$index2];
		$index2--;
		$index++;
	}
	for($t=1;$t<=7;$t++)
	{
		echo '<table border="0" cellpadding="5" cellspacing="1" bgcolor="#999999"  style="font-family : verdana; font-size : 12px;">';
		echo '<tr valign="top"><td style="font-weight:bold;" bgcolor="#DDDDDD">Données de gestion</td>';
		$dda = $table[$t];
		//$ddate = $DDay[$i];
		
		echo "<b>".$dda."</b>";
		echo $t;
		// AFFICHAGE DE LA LIGNE TITRES
		for($r=0; $r<mysql_num_rows($results); $r++)
		{
			$sLicence = mysql_result($results,$r,"cleident");
			$sNom = mysql_result($results,$r,"nom");
		  
			// Lecture des données ([licence].xml)
			$sFileName = "upload/".$sLicence."/".$dda.".xml";
			
			if (file_exists($sFileName))
			{
				$sJour = $aDay[date("w", filemtime($sFileName))];
				
				// Ajoute la date et l'heure du fichier
			 	$sTime = $sJour.", ".date("d/m/Y H:i", filemtime($sFileName));
			 				 
		  		echo "<td align='right' bgcolor='#DDDDDD' style='padding :5px;' nowrap>";
		  		echo "<b>$sNom</b>";
		  		echo "<br>";
		  		echo "<span style='font-size : 10px;'>";
		  		echo $sTime;
		  		echo "</span>";
		  		echo "</td>";
		  	
		  		$nNbFichiers++;
			}
		}
		
		if ($nNbFichiers>1)
			echo "<td align='right' width='100' bgcolor='#DD3333' style='color: #FFFFFF; font-weight:bold; padding :5px;' nowrap>Totaux</td>";
			echo "</tr>";

		// MEMORISATION DES TITRES ET VALEURS
		$asTitres = array();
		$asValeurs = array();
		
		// On récupère les titres et les valeurs
		ChargeTableaux($results, $asTitres, $asValeurs, $dda);
		
		// Si aucun fichier n'a été trouvé
		if (empty($asTitres))
		{	
			echo "</table><br><br><span style='font-family : verdana; font-size : 12px;'>Aucunes données n'a été transmises pour le moment</span>";
			echo "<br><br>";
			echo "<input type='button' onclick='javascript:document.location.reload();' value='Actualiser'>";						
		}
		else
		{		
			// AFFICHAGE DE CHAQUE LIGNE
			$nTotalLignes = count($asTitres);				
			for ($j=0;$j<$nTotalLignes; $j++)
			{
				$sTitre = $asTitres[$j];
					
				if ($j%2>0)
					$sBGColor = "#F5F5F5";
				else
					$sBGColor = "#FFFFFF";
					
				echo "<tr><td bgcolor='$sBGColor' style='padding :5px;' nowrap>".$sTitre."</td>";
				
				$rTotal = 0;
				foreach($asValeurs[$j] as $rValue)
				{
					$rTotal += $rValue;
					
					echo "<td align='right' style='padding :5px;' bgcolor='$sBGColor'>".$rValue."</td>";				
				}
				
				if ($nNbFichiers > 1)
				{
					$sTotal = sprintf("%.02f", $rTotal);
									
					echo "<td align='right' style='padding :5px;' bgcolor='#FFCCCC'>".$sTotal."</td>";
				}
				
				echo "</tr>";
			}
			
			if ($nNbFichiers>1)
				$nCols = $nNbFichiers+2;
			else
				$nCols = $nNbFichiers+1;
			
			echo "<tr><td align='right' colspan=".($nCols)." bgcolor=#999999>";
			echo "<input type='button' onclick='javascript:document.location.reload();' value='Actualiser'>";				
			echo "</td></tr>";
			
			echo "</table><br><br>";
		}
		
	}
	
}
0