J'ai enlevé tous les timestamp.
Voici mes deux principaux fichiers liés (il manque juste le style.css et le fichier de config à la base de données)
mon index.php:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Calendrier</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<?php
require('config.php');
require('date.php');
$date = new Date();
$year = date('Y');
$events = $date->getEvents($year);
$dates = $date->getAll($year);
?>
<div class="periods">
<div class="year"><?php echo $year; ?></div>
<?php $dates = current($dates); ?>
<?php $semaines = array('S01', 'S02', 'S03', 'S04', 'S05', 'S06', 'S07', 'S08', 'S09', 'S10', 'S11', 'S12', 'S13', 'S14', 'S15', 'S16', 'S17', 'S18', 'S19', 'S20', 'S21', 'S22', 'S23', 'S24', 'S25', 'S26', 'S27', 'S28', 'S29', 'S30', 'S31', 'S32', 'S33', 'S34', 'S35', 'S36', 'S37', 'S38', 'S39', 'S40', 'S41', 'S42', 'S43', 'S44','S45','S46','S47','S48','S49','S50','S51','S52');
echo '<table>';
$i=1;
echo '<tr>';
foreach($semaines as $d){
echo '<td><div class="day">'.$d.'</div>
<div class="daytitle">
Semaine '.$d.
'</div>';
echo '<ul class="events"><li>Test</li>';
echo '</ul></td>';
if($i%8==0){echo '</tr><tr>';}
$i++;
}
echo'</tr>';
echo '</table>';
?>
</div>
</div>
<div class="clear"></div>
<pre><?php print_r($events); ?></pre>
</body>
</html>
et mon date.php:
<?php
class Date{
var $semaines = array('S01', 'S02', 'S03', 'S04', 'S05', 'S06', 'S07', 'S08', 'S09', 'S10', 'S11', 'S12', 'S13', 'S14', 'S15', 'S16', 'S17', 'S18', 'S19', 'S20', 'S21', 'S22', 'S23', 'S24', 'S25', 'S26', 'S27', 'S28', 'S29', 'S30', 'S31', 'S32', 'S33', 'S34', 'S35', 'S36', 'S37', 'S38', 'S39', 'S40', 'S41', 'S42', 'S43', 'S44','S45','S46','S47','S48','S49','S50','S51','S52');
function getEvents($year){
global $DB;
$req = $DB->query('SELECT id,title,datemaj,DATE_FORMAT(date, "%U") AS numSemaine FROM events WHERE YEAR(date)='.$year);
$r = array();
while($d = $req->fetch(PDO::FETCH_OBJ)){
$r$d->numSemaine]$d->id]$d->datemaj]= $d->title;
}
return $r;
}
function getAll($year){
$r = array();
$date = new DateTime($year.'01');
while($date->format('Y') <= $year){
$y = $date->format('Y');
$d = $date->format('W');
$w = $date->format('W');
$r$y]$d] = $w;
$date->add(new DateInterval('P1W'));
}
return $r;
}
}
Dans mon fichier date.php:
Je suis arrivée à convertir sans problème la date entrée en format "date" (aaaa-mm-jj) dans la base de données.
Par contre, ça ne m'arrange pas, parce que j'aimerai récupérer une date déjà formatée en numéro de semaine de mon formulaire de mise à jour, vers ma base de données.
Dans ma boucle while, j'arrive aussi à récupérer le numéro de semaine généré.
Dans mon fichier index.php:
J'ai inséré un <li>Test</li> à l'endroit où je voudrais récupérer les événements de la base de données, donc ça fonctionne sur le principe.
Par contre, j'ai tourné dans tous les sens le code
if(isset($events$time])): foreach($events$time] as $e){
echo '<li>'.$e.'</li>';
}
J'ai défini $time = echo $d; mais ça me fait une erreur.
J'ai enlevé $time pour mettre numSemaine, et ça ne fonctionne pas non plus...
Comment dois-je m'y prendre pour faire ce lien?