Bjr, enfin résolu voici comment
j initialise avant la boucle
puis je concatene la variable $interval pour additionner
j additionne le resultat dans $addinternal
a la fin de chaque je fais le total
puis je réinitialise $dateref

merci pour ton aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
$addinternal= clone new DateTime($row1['date_heure_deb'], new DateTimeZone('Europe/Paris'));
while ($row = mysqli_fetch_array($sql_result)) {
	
    if ($row['ident_trav']==$v_ident) {
	echo "<tr>";
	echo "<td align=\"left\">".strtoupper($row['nom_motif'])."&nbsp;</td>";
	echo "<td align=\"center\">". strftime('%d-%m-%Y %H:%M:%S', strtotime($row['date_heure_deb']))."&nbsp;</td>";
	if ($row['date_heure_fin']>('0000-00-00 00:00:00')) {
	echo "<td align=\"center\">". strftime('%d-%m-%Y %H:%M:%S', strtotime($row['date_heure_fin']))."&nbsp;</td>";
	} else {
		echo "<td align=\"center\">&nbsp;</td>";
	}
// le if pour ne pas compter une date erronnée si date vide
  if($row['date_heure_fin']>'0000-00-00 00:00:00') {
// on fait la différence pour recupere le temps entre les deux dates
		$dated= new DateTime($row['date_heure_deb'], new DateTimeZone('Europe/Paris'));
		$datef= new DateTime($row['date_heure_fin'], new DateTimeZone('Europe/Paris'));
// on concatene la variable avec le compteur pour incrementer internal1, internal2... 
		${"interval".strval($valcpt)} = $datef->diff($dated);
// j additionne les valeurs si motif different de pause
		if (strstr($row['nom_motif'],"Pause")) {
			
		}else{
			$addinternal->add(${"interval".strval($valcpt)});
		}
		echo "<td   align=\"center\">". ${"interval".strval($valcpt)}->format('%H:%I:%S')."&nbsp;</td>";

		$valcompte=$valcompte + 1;
		$dateref= new DateTime($row1['date_heure_deb'], new DateTimeZone('Europe/Paris'));
// j incrmente le compteur a + 1	pour avoir  înteral2 .....	
		$valcpt=$valcpt+1;
	}else {
		// on fait la différence pour recupere le temps entre les deux dates
		$dated= new DateTime($row['date_heure_deb'], new DateTimeZone('Europe/Paris'));
		$datef= new DateTime();
// on concatene la variable avec le compteur pour incrementer internal1, internal2... 
		${"interval".strval($valcpt)} = $datef->diff($dated);
		// j additionne les valeurs si motif different de pause
		if (strstr($row['nom_motif'],"Pause")) {
		
		}else {
			$addinternal->add(${"interval".strval($valcpt)});
		}
		echo "<td   align=\"center\">". ${"interval".strval($valcpt)}->format('%H:%I:%S')."&nbsp;</td>";
		$valcompte=$valcompte + 1;
		$dateref= new DateTime($row1['date_heure_deb'], new DateTimeZone('Europe/Paris'));
// j incrmente le compteur a + 1	pour avoir  înteral2 .....	
		$valcpt=$valcpt+1;
		//echo "<td   align=\"center\">&nbsp;</td>";
	}
} else { // si ident_trav change on affiche le total des temps passe
	echo "<tr>";
	echo "<td colspan=\"3\" align=\"right\">Temps Total Travaill&eacute;";
		$total= $addinternal->diff($dateref);
		if (($total->format('%H:%I'))<=$row1['dur_pre']) {
		echo "<td   align=\"center\" bgcolor=\"green\" style=\"color:white\">".$total->format('%H:%I:%S')."&nbsp;</td>";
		} else {
			echo "<td   align=\"center\" bgcolor=\"red\" style=\"color:white\">".$total->format('%H:%I:%S')."&nbsp;</td>";
		}
		
		$v_ident=$row['ident_trav'];
		// on reinitialise
		$addinternal= clone $dateref;
	// on continue avec l 'enregistrement suivant
		echo "<tr>";
		//echo "<td align=\"center\">". strtoupper($row['ident_trav'])."&nbsp;</td>";
		echo "<td align=\"left\">". strtoupper($row['nom_motif'])."&nbsp;</td>";
		echo "<td align=\"center\">". strftime('%d-%m-%Y %H:%M:%S', strtotime($row['date_heure_']))."&nbsp;</td>";
		if ($row['date_heure_fin']>('0000-00-00 00:00:00')) {
			echo "<td align=\"center\">". strftime('%d-%m-%Y %H:%M:%S', strtotime($row['date_heure_fin']))."&nbsp;</td>";
		} else {
			echo "<td align=\"center\">&nbsp;</td>";
		}
		if ($row['date_heure_fin']>'0000-00-00 00:00:00'){
// on fait la différence pour recupere le temps entre les deux dates
		$dated= new DateTime($row['date_heure_deb'], new DateTimeZone('Europe/Paris'));
		$datef= new DateTime($row['date_heure_fin'], new DateTimeZone('Europe/Paris'));
// on concatene la variable avec le compteur pour incrementer internal1, internal2... 
		${"interval".strval($valcpt)} = $datef->diff($dated);
		if (strstr($row['nom_motif'],"Pause")) {
			
		}else {
			$addinternal->add(${"interval".strval($valcpt)});
		}
		echo "<td   align=\"center\">". ${"interval".strval($valcpt)}->format('%H:%I:%S')."&nbsp;</td>";
		$valcpt=$valcpt+1;
		}else {
		 echo "<td   align=\"center\">&nbsp;</td>";	
		}
	}
}