dans une boucle, après une requête SQL, je regroupe chaque critères dans un même tableau qui contient des tableaux du coup. le soucis c'est que je nomme ces différents tableaux avec leur nom et je veux les appeler avec une boucle incrémentée, et ça me retourne rien.
Vous comprendrez mieux avec le code :
<?php
$date_D = $_GET['Dannee'].'-'.$_GET['Dmois'].'-'.$_GET['Djour'].' 00:00:00';
$date_F = $_GET['Fannee'].'-'.$_GET['Fmois'].'-'.$_GET['Fjour'].' 23:59:59';
$demande = mysql_query("SELECT *
FROM client C, travaux T, type Y, sous_type ST, taxe X
WHERE T.id_client = C.id_client
AND T.id_type = Y.id_type
AND T.id_sstype = ST.id_sstype
AND Y.id_taxe = X.id_taxe
AND C.nomClient = '".$_GET['nom']."'
AND T.date_D > '".$date_D."'
AND T.date_D < '".$date_F."'
ORDER BY Y.id_type ASC");
while($donnees = mysql_fetch_assoc($demande))
{
if($donnees['facturable'] == '1')
{
$type[2][$donnees['Tdesignation']]['prix_h'] = $donnees['prix_h'];
$type[1][$donnees['Tdesignation']][$donnees['STdesignation']]['sous-type'] = $donnees['STdesignation'];
$type[1][$donnees['Tdesignation']][$donnees['STdesignation']]['nbr_min'] += $donnees['nbr_min'];
$type[1][$donnees['Tdesignation']][$donnees['STdesignation']]['montant_HT'] = ($type[1][$donnees['Tdesignation']][$donnees['STdesignation']]['nbr_min']/60) * $donnees['prix_h'];
$type[1][$donnees['Tdesignation']][$donnees['STdesignation']]['montant_TTC'] = $type[1][$donnees['Tdesignation']][$donnees['STdesignation']]['montant_HT'] * (1 + $donnees['taux']/100);
}
else
{
$type[0][$donnees['Tdesignation']][$donnees['STdesignation']]['sous-type'] = $donnees['STdesignation'];
$type[0][$donnees['Tdesignation']][$donnees['STdesignation']]['nbr_min'] += $donnees['nbr_min'];
}
}
$nbr_type[1] = count($type[1]);
$nbr_type[0] = count($type[0]);
echo "<table>";
while($i <= $nbr_type[1])
{
echo $type[1][$i]." (".$type[2][$i]['prix_h']." € HT / h)";
echo "<tr>
<td>Sous-type</td>
<td>Nbr heures</td>
<td>Montant HT</td>
<td>Montant TTC</td>
</tr>";
$nbr_sstype = $type[1][$i];
$y = 0;
$sstotal_HT = 0;
$sstotal_TTC = 0;
while($y <= $nbr_sstype)
{
echo "<tr>
<td>".$type[1][$i][$y]['sous-type']."</td>
<td>".transformeDuree($type[1][$i][$y]['nbr_min'])."</td>
<td>".$type[1][$i][$y]['montant_HT']." &euro</td>
<td>".$type[1][$i][$y]['montant_TTC']." &euro</td>
</tr>";
$sstotal_HT += $type[1][$i][$y]['montant_HT'];
$sstotal_TTC += $type[1][$i][$y]['montant_TTC'];
$y++;
}
echo "<tr>
<td>Total</td>
<td>".$sstotal_HT." &euro</td>
<td>".$sstotal_TTC." &euro</td>
</tr>";
$total_HT += $sstotal_HT;
$total_TTC += $sstotal_TTC;
$i++;
}
echo "</table>";
?>
Alors quand, dans le première boucle, je fais un
echo $type[1][$donnees['Tdesignation']][$donnees['STdesignation']]['sous-type'|'nbr_min'|'montant_HT'|'montant_TTC']
ou même un
print_r($type); print_r($type[1]);
j'obtiens bien un résultat non NULL, mais si je fais un
echo $type[1][1] echo $type[1][1][1]
et plus, j'ai rien.
Quelqu'un aurait une explication ? une solution ?
Merci

De deux, vos remarques sont pas constructive, merci quand même pour vos efforts.
De trois, j'ai pas l'intention de bosser dans une compagnie douteuse à Paris, j'ai d'autres projets et ambitions !
De quatre, je suis pas votre élève et aucun prof de programmation, dans le milieu scolaire, ne m'a appris quoi que ce soit. Non pas que je suis pas attentif mais qu'ils ont été quelque peu incompétents (et j'ai pas été le seul à le penser et le dire).
Par contre, si jamais une idée lumineuse vous viens à l'esprit ou un conseil qui pourrait m'être utile (autre que l'utilisation d'un autre langage ou outils extérieur), je serai à votre écoute.
Merci.
Vas voir du côté de la boucle
if(sizeof($ton_array)>0){
foreach($ton_array as $cle=>$value){
//la tu balaye tout le premier niveau $cle= nom de l'index $value=sa valeur
//pour balayer le niveau suivant
if(sizeof($ton_array[$cle])>0){
foreach($ton_array[$cle] as $cle2=>$value2)
//la tu balaye le niv 2 avec $cle2 les index niv2 et $value2 leurs valeurs
//etc....
}
}
}
Je vais mettre ça en place tout de suite.
Merci beaucoup !