Bonjour,

J'essaye de savoir si 1 période demandé chevauche les periodes enregistrees dans ma base de données. L'idée c'est de comparer les timestamps des dates de début et de fin des période.
Si la date de début de la période demandée, est incluse dans une période enregistrée dans la BDD on retourne true.
Si la date de fin de la période demandée, est incluse dans une période enregistrée dans la BDD on retourne true aussi.

Le pb c'est que ma fonction ne renvoit jamais true ...

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
 
function chevauche($jourDeb, $moisDeb, $anneeDeb, $jourFin, $moisFin, $anneeFin){
	//CONNECTION A LA BASE DE DONNEES
	include "connection.php";
	mysql_select_db($database, $db);
 
	//PARCOURS DES PERIODES ENREGISTREES
	$res = "select * from periodes";
  	$select = mysql_query($res) or die(mysql_error());
 
        // CREATION DES TIMESTAMPS DES 2 DATES DEFINISSANT LA PERIODE
	$timestampDeb = mktime(0, 0, 0, $jourDeb, $moisDeb, $anneeDeb);
	$timestampFin = mktime(0, 0, 0, $jourFin, $moisFin, $anneeFin);
 
	while($line=mysql_fetch_array($select,MYSQL_ASSOC)){
		$jour1 = $line['jour_deb'];
		$mois1 = $line['mois_deb'];
		$annee1 = $line['annee_deb'];
		$jour2 =  $line['jour_fin'];
		$mois2 = $line['mois_fin'];
		$annee2 = $line['annee_fin'];
 
		$timestamp1 = mktime(0, 0, 0, $mois1, $jour1 , $annne1);
		$timestamp2 = mktime(0, 0, 0, $mois2, $jour2 , $annne2);
 
		if ((($timestampDeb<=$timestamp2) && ($timestampDeb>=$timestamp1)) || (($timestampFin<=$timestamp2) && ($timestampFin>=$timestamp1))) return true;
	}
return false;
}