8721 sujets

Développement web côté serveur, CMS

Bonjour à tous,
j'essaye de suivre ce tuto pour construire un calendrier en php, jquery et mysql pour programmer des événements dedans mais je but sur cette communication avec la base mysql. Il ne veulent pas s'afficher. Pour info mon problème se situe vers la 39eme minutes.
http://www.grafikart.fr/tutoriels/php/calendrier-php-157
Pour info ma base et ma table mysql ont exactement les mêmes noms que dans le tuto.
Voici mes codes :
- pour la page "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">
			jQuery(function($){
				$('.month').hide();
				$('.month:first').show();
				$('.months a:first').addClass('active');
				var current = 1;
				$('.months a').click(function(){
					var month = $(this).attr('id').replace('linkMonth','');
					if (month != current){
						$('#month'+current).slideUp();
						$('#month'+month).slideDown();
						$('.months a').removeClass('active');
						$('.months a#linkMonth'+month).addClass('active');
						current = month;
					}
					return false;
				});
			})
		</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>
				<div class="months">
					<ul>
						<?php foreach ($date->months as $id=>$m): ?>
							<li><a href="#" id="linkMonth<?php echo $id+1; ?>"><?php echo utf8_encode(substr(utf8_decode($m),0,3)); ?></a></li>
						<?php endforeach; ?>
					</ul>
				</div>
				<div class="clear"></div>
				<?php $dates = current($dates); ?>
				<?php foreach ($dates as $m=>$days): ?>
					<div class="month relative" id="month<?php echo $m; ?>">
					<table>
						<thead>
							<tr>
								<?php foreach ($date->days as $d): ?>
									<th><?php echo substr($d,0,3); ?></th>
								<?php endforeach; ?>
							</tr>
						</thead>
						<tbody>
							<tr>
							<?php $end = end($days); foreach ($days as $d=>$w): ?>
								<?php if($d == 1): ?>
									<td colspan="<?php echo $w-1; ?>" class="padding"></td>
								<?php endif; ?>
								<td>
									<div class="relative">
										<div class="day"><?php echo $d; ?></div>
									</div>
									<ul class="events">
										
									</ul>
								</td>
								<?php if($w ==7): ?>
								</tr><tr>
								<?php endif; ?>
							<?php endforeach; ?>
							<?php if($end != 7): ?>
								<td colspan="<?php echo 7-$end; ?>" class="padding"></td>
							<?php endif; ?>
							</tr>
						</tbody>
					</table>
					</div>
				<?php endforeach; ?>
		</div>
		<div class="clear"></div>
		<pre><?php print_r($events); ?></pre>
	</body>
</html>


- pour la page "date.php" :
<?php
class Date {

	var $days		=array('Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche');
	var $months		=array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre');

	function getEvents($year){
		global $DB;
		$req = $DB->query('SELECT id,title,date FROM events WHERE YEAR(date)='.$year);
		$r = array();
		while($d = $req->fetch(PDO::FETCH_OBJ)){
			$r[strtotime($d->date)][$d->id] = $d->title;
			}
			return $r;
	}
	
	function getALL($year) {
		$r = array();
		/**
		* Boucle version procedurale
		*
		$date = strtotime($year.'-01-01');
		while(date('y',$date) <= $year){
		//ce que je veux => $r [année] [mois][jour] = jour de la semaine
		$y = date('y',$date);
		$m = date('n',$date);
		$d = date('j',$date);
		$w = str_replace('0','7',date('w',$date));
		$r[$y][$m][$d] = $w;
		$date = strtotime(date('y-m-d',$date).' +1 DAY');
		}
		*
		*
		*/
		$date = new DateTime($year.'-01-01');
		while($date->format('y')<= $year){
		//ce que je veux => $r [année] [mois][jour] = jour de la semaine
		$y = $date->format('y');
		$m = $date->format('n');
		$d = $date->format('j');
		$w = str_replace('0','7',$date->format('w'));
		$r[$y][$m][$d] = $w;
		$date->add(new DateInterval('P1D'));
		
		}
		return $r;

	}

}


-pour la page "config.php" :
<?php
try{
	$DB = new PDO('mysql:host=localhost;dbname=tuto','root','',array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8'));
	
}
catch(PDOException $e){
	echo 'Base de donnée en vacance';
	exit();
}
?>


Si quelqu'un pourrait tester et me dire d'ou vient mon problème je lui en serait très reconnaissant.
Merci d'avance.