Outre le n° de cours et la date (qui fonctionne bien), je veux afficher dans 2 autres colonnes et respectivement l'heure de la fin du cours et l'heure du début du cours suivant. Donc l'heure de fin de cours si situe dans la colonne [1] mais sur la ligne du dessus et le début du cours sur la colonne [0] de la ligne du dessous.
Le problème est d'afficher dans la commande echo, l'heure de la fin du cours de la ligne qui précède début de cours.
Je te mets le code complet :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Agenda php</title>
</head>
<body style="background-color:#B7C1A2";>
<h2 style="color:blue;">Un agenda en php</h2>
<p>Il a été résolu le probème ,du moins nous l'espérons, en utilisant les tableaux de façon différente :
<ol>
<li>tableau indicié</li>
<li>tableau associatif à plusieurs colonnes</li>
</ol>
</p>
<h3 style="color:blue";> Avec le tableau indicié</h3>
<?php
$numCours = array(8, 5, 4, 1, 3, 2, 6, 7, 9);
$debutCours = array(mktime(14,0,0,04,14,2010), mktime(14,0,0,04,12,2010), mktime(16,0,0,04,13,2010),mktime(8,0,0,04,16,2010), mktime(15,0,0,04,14,2010), mktime(16,0,0,04,15,2010), mktime(9,0,0,04,16,2010), mktime(14,0,0,04,16,2010), mktime(14,0,0,04,15,2010));
$finCours = array(mktime(12,0,0,04,16,2010), mktime(16,0,0,04,12,2010), mktime(18,0,0,04,13,2010), mktime(16,0,0,04,14,2010), mktime(17,0,0,04,14,2010), mktime(16,0,0,04,15,2010), mktime(18,0,0,04,15,2010), mktime(16,0,0,04,16,2010), mktime(11,0,0,04,16,2010));
//La fonction array_multisort ne fonctionnant pas, j'ai utilise la focntion sort()
sort($numCours);
sort($debutCours);
sort($finCours);
echo "<table width=80% border=1 bordercolor=blue>
<tr><th>Date des Cours</th><th>Horaires des cours</th><th><small>
Les chevauchements</th><tr><td>";
//tableau 1
echo "<table border=1 align=center>
<tr><th>Cours</th><th>Date</th></tr>";
foreach($numCours as $maCle=>$maValeur)
{
echo "<tr><td align=center>".$maValeur."</td><td>".strftime("%d/%m/%Y",$debutCours[$maCle])."</td></tr>";
}
echo "</table></td><td>";
//tableau 2
echo "<table border=1 align=center>
<tr><th>Début du cours</th><th>Fin du cours</th></tr>";
foreach($debutCours as $maCle=>$maValeur)
{
echo "<tr><td align=center>".strftime("%H h",$debutCours[$maCle])."</td><td align=center>".strftime("%H h",$finCours[$maCle])."</td></tr>";
}
echo "</table></td><td>";
//tableau diff
echo "<table border=1 bordercolor=green align=center>
<tr><th>Cours</th>
<th>Date</th>
<th>Fin cours précédent </th>
<th>Debut cours suivant</th></tr>";
foreach($debutCours as $maCle=>$maValeur)
{
if ($numCours and $debutCours[$maCle] < (@$finCours[$maCle-1]))
{
echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$debutCours[$maCle])."</td><td align=center>".strftime("%H h",$finCours[$maCle-1])."</td><td align=center>".strftime("%H h",$debutCours[$maCle])."</td></tr>";
}
}
echo "</table></table>";
?>
<!---------------------------------------------------------------------------------------------------------------->
<br />
<br />
<h3 style="color:blue;">Avec un tableau associatif à plusieurs colonnes</h3>
<p>Nous pouvons faire cela, on utilisant un tableau associatif à plusieurs colonnes. Pour trier un tableau associatif, on utilise la fonction ksort() si l'on souhaite maintenir la correspondance entre les clés et les valeurs. Avec asort(), cette correspondance n'est pas respectée. Faites l'essai!!!</p>
<?php
$tableau_Cours=array();
$tableau_Cours['Cours_005']=array (mktime(14,0,0,04,15,2010), mktime(16,0,0,04,15,2010));
$tableau_Cours['Cours_003']=array (mktime(14,0,0,04,14,2010), mktime(16,0,0,04,14,2010));
$tableau_Cours['Cours_001']=array (mktime(14,0,0,04,12,2010), mktime(16,0,0,04,12,2010));
$tableau_Cours['Cours_002']=array (mktime(16,0,0,04,13,2010), mktime(18,0,0,04,13,2010));
$tableau_Cours['Cours_004']=array (mktime(15,0,0,04,14,2010), mktime(17,0,0,04,14,2010));
$tableau_Cours['Cours_008']=array (mktime(9,0,0,04,16,2010), mktime(12,0,0,04,16,2010));
$tableau_Cours['Cours_006']=array (mktime(16,0,0,04,15,2010), mktime(18,0,0,04,15,2010));
$tableau_Cours['Cours_007']=array (mktime(8,0,0,04,16,2010), mktime(11,0,0,04,16,2010));
$tableau_Cours['Cours_009']=array (mktime(14,0,0,04,16,2010), mktime(16,0,0,04,16,2010));
//ksort trie le tableau suivant les clés en maintenant la correspondance entre les clés et les valeurs. Cette fonction est importante pour les tableaux associatifs
ksort($tableau_Cours);
echo "<table width=80% border=1 bordercolor=blue>
<tr><th>Date des Cours</th><th>
Les chevauchements</th><tr><td>";
//tableau 1
echo "<table border=1 align=center>
<tr><th>Cours</th><th>Date des cours</th><th>Début du cours</th><th>Fin du cours</th></tr>";
foreach($tableau_Cours as $maCle=>$maValeur)
{
echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[1])."</td></tr>";
}
echo "</table></td><td>";
//Tableau diff
echo "<table border=1 bordercolor=green align=center>
<tr><th>Cours</th>
<th>Date</th>
<th>Fin cours précédent </th>
<th>Debut cours suivant</th></tr>";
foreach($tableau_Cours as $maCle=>$maValeur)
{
$debut_Cours = $maValeur[0];
if ($debut_Cours < (@$fin_Cours))
echo "<tr><td align=center>".$maCle."</td><td align=center>".strftime("%d/%m/%Y",$maValeur[0])."</td><td align=center>".strftime("%H h",$maValeur[1])."</td><td align=center>".strftime("%H h",$maValeur[0])."</td></tr>";
$fin_Cours = $maValeur[1];
}
echo "</table></table>";
?>
</body>
</html>
Et merci encore pour ta patience car je ne vois pas comment accéder à cette ligne.