8768 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je suis en quête d'aide pour transformer ces 3 tableaux php en fichier Excel via un bouton d'export pour chaque. Est-ce que vous pensez que cela est possible facilement ?

1er Tableau :
<?php
// On fait une requête sur le nombre de batiment afin de créer le bon colspan dans le tableau
$nbrebatiment=mysql_query("SELECT nom_batiment AS BATIMENT FROM inventaire GROUP BY nom_batiment") or die(mysql_error());$nbre= mysql_num_rows($nbrebatiment);
echo '<table align="center" style="border: 1px solid black;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;">';
echo '<tr style="vertical-align: middle; text-align: center; ">
	<th style="background-color:#8CC6D7;">Matériel</th>
	<th colspan="'.$nbre.'" style="color: RGB(0, 0, 100%); background-color:#8CC6D7;">Nbre par Bâtiment</th>
</tr>';
$Q = "SELECT type_ensemble AS TYP FROM inventaire GROUP BY TYP";
$R = mysql_query($Q)or die(mysql_error());
// Boucle 1 : les ensembles
while($A = mysql_fetch_assoc($R)) {
	// On affiche la ligne avec les ensembles
	echo '<tr style="background-color: #EDF7F2; color: blue;"><td align="center" style="background-color: #C4FCCA">'.$A['TYP'].'</td>';
	$Q1 = "SELECT nom_batiment AS BAT FROM inventaire GROUP BY BAT";
	$R1 = mysql_query($Q1)or die(mysql_error());
	// Boucle 2: Affichage des Batiments par ensembles
	while($A1 = mysql_fetch_assoc($R1)) {echo '<td align="center" style="background-color: #C4FCCA">'.$A1['BAT'].'</td>';}
	echo '</tr><tr>';
	$Q2 = "SELECT element AS ELE FROM inventaire WHERE type_ensemble='".$A['TYP']."' GROUP BY ELE";
	$R2 = mysql_query($Q2)or die(mysql_error());
	// Boucle 3:  Affichage des elements correspondant à leurs ensembles
	while ($A2 = mysql_fetch_assoc($R2)) {
		echo '<td style="font-size:12px; text-align:right">'.$A2['ELE'].'</td>';
		$R3 = mysql_query($Q1)or die(mysql_error());
		// Boucle 4: Affichage du nombre d'éléments par bâtiments
		while($A3 = mysql_fetch_assoc($R3)) {
			$Q4 = "SELECT SUM(nombre) AS NB FROM inventaire WHERE nom_batiment='".$A3['BAT']."' AND element='".$A2['ELE']."' AND type_ensemble='".$A['TYP']."'";
			$R4 = mysql_query($Q4)or die(mysql_error());
			// Boucle 5: Requête sur les noms de bâtiments
			while($A4 = mysql_fetch_assoc($R4)) {
				// On affiche le nombre si la requête est non nulle
				if(isset($A4['NB'])) {echo '<td align="center" style="font-size:0.9em;color: red">'.$A4['NB'].'</td>';}
				// Sinon on affiche rien
				else {echo '<td align="center"></td>';}
			}
		}
		echo '</tr>';
	}
}
echo '</table>';
?>


Le deuxieme:
<?php
$nbreensemble=mysql_query("SELECT type_ensemble AS ensemble FROM inventaire GROUP BY ensemble ORDER BY ensemble") or die(mysql_error());
$nbre= mysql_num_rows($nbreensemble);
echo '<table align="center" style="border: 1px solid black;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;">';
// Création de l'en-tête
echo '<tr style="vertical-align: middle; text-align: center;">
	<th rowspan="2" style="background-color:#8CC6D7;">Bâtiments</th>
	<th colspan="'.$nbre.'" style="color: RGB(0, 0, 100%); background-color:#8CC6D7;">Ensembles</th></tr><tr>';
	$mes_ensembles="SELECT type_ensemble AS ensemble FROM inventaire GROUP BY ensemble ORDER BY ensemble";
	$ensemble=mysql_query($mes_ensembles)or die(mysql_error());
	// Boucle 1: Affichage des colonnes ensembles
	while($ens = mysql_fetch_assoc($ensemble)) {echo '<th align="center" style="background-color: #C4FCCA; padding:0 10px 0 10px;">'.$ens['ensemble'].'</th>';}
echo '</tr>';
$Q = "SELECT nom_batiment AS BAT FROM inventaire GROUP BY BAT";
$R = mysql_query($Q)or die(mysql_error());
// Boucle 2 : Affichage des lignes avec le nombre d'ensembles par bâtiments
while($A = mysql_fetch_assoc($R)) {
	// On affiche le bâtiment dans la première colonne
	echo '<tr class="<?php echo $classe;?>" style="background-color: #EDF7F2; color: blue;">
			<td align="center" style="background-color: #C4FCCA">'.$A['BAT'].'</td>';
	// Boucle 3: Affichage du nombre d'ensembles par bâtiments et par ensembles
	$R3 = mysql_query($mes_ensembles)or die(mysql_error());
	while($A1 = mysql_fetch_assoc($R3)) {
		$Q2 = "SELECT SUM(nombre) AS NB FROM inventaire WHERE nom_batiment='".$A['BAT']."' AND type_ensemble='".$A1['ensemble']."'";
		$R2 = mysql_query($Q2)or die(mysql_error());
		// Boucle 4: Affichage du nombre pour un ensemble
		while($A2 = mysql_fetch_assoc($R2)) {
			// On affiche le nombre si la requete est non nulle
			if(isset($A2['NB'])) {echo '<td align="center" style="font-size:0.9em;color: red">'.$A2['NB'].'</td>';}
			// Sinon on affiche 0
			else {echo '<td align="center">0</td>';}
		}
	}
	echo '</tr>';
}
echo '</table>';
?>


Et donc le dernier:
<table border="1" cellspacing="0" style="width:35%;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;" align="center" charset="utf-8">
	<col style="width:70%"><col style="width:30%">
	<tr style="vertical-align: middle; text-align: center;">
		<th style="background-color:#8CC6D7;">Matériel</th>
		<th style="color: RGB(0, 0, 100%); background-color:#8CC6D7;">Nbre Total</th>
	</tr>
	<?php
		$reqEnsemble=mysql_query("SELECT type_ensemble AS ENSEMBLE, SUM(nombre) AS NBRE_ELEMENT
									FROM inventaire
									GROUP BY ENSEMBLE ORDER BY ENSEMBLE") or die(mysql_error());						
		while ($req1 = mysql_fetch_assoc($reqEnsemble)) { 
			echo '<tr style="background-color: #EDF7F2; color: blue;">';
			echo '<td align="center" style="background-color: #C4FCCA">'.htmlentities($req1['ENSEMBLE']).'</td>';
			echo '<td align="center" style="background-color: #C4FCCA">'.htmlentities($req1['NBRE_ELEMENT']).'</td>';
			echo '</tr>';
			$ensemble = mysql_real_escape_string($req1['ENSEMBLE']);
			$reqElement=mysql_query("SELECT type_ensemble AS ENSEMBLE, SUM(nombre) AS NBRE_ELEMENT, element AS ELEMENT
									FROM inventaire
									WHERE type_ensemble = '$ensemble' 
									GROUP BY ELEMENT ORDER BY ELEMENT");			
			while ($req2 = mysql_fetch_assoc($reqElement)) {
				echo '<tr>';
				echo '<td style="font-size:12px; text-align:right">'.htmlentities($req2['ELEMENT']).'</td>';
				echo '<td align=center>'.htmlentities($req2['NBRE_ELEMENT']).'</td>';
				echo '</tr>';
			}
		}
	?>
</table>


En vous remerciant par avance.

maxredphenix
Modifié par maxredphenix (01 Apr 2014 - 22:33)