Probleme de formatage de date et de comparaison [Résolu]

msi79 455 Messages postés lundi 24 août 2009Date d'inscription 9 octobre 2018 Dernière intervention - 2 juil. 2014 à 20:05 - Dernière réponse : msi79 455 Messages postés lundi 24 août 2009Date d'inscription 9 octobre 2018 Dernière intervention
- 2 juil. 2014 à 22:12
Bonjour,
je voudrais afficher les notes d'une période (un trimestre) .
pour cela dans ma base de donnée j'ai enregistré durement les trimestre et leur date comme le montre l'image :


donc il faut que la date d'enregistrement de note soit comprise entre debut et fin du trimestre.

Ma requête ne fonctionne pas . je veux de l'aide . merci d'avance .
VOICI mon code :
<?php

if(isset($_GET['mat'])); $mat = urldecode($_GET['mat']); //echo $mat;
if(isset($_GET['class'])); $class = urldecode($_GET['class']); //echo $class;
//RECUPERATION DU TRIMESTRE
$sql = "SELECT *
FROM trimestres
WHERE trim = 'TRIM1'
" ;
$req = mysql_query($sql) or die('no');
while($row = mysql_fetch_assoc($req)){
$debut = $row["debut"]; echo $debut.'<br/>';
$fin = $row["fin"];
$debut = date("Y/m/d H:i:s",strtotime($debut));
}
//calcul de moyennes
$q = mysql_query("SELECT *
FROM inscription I
,notes N
,matieres M
WHERE I.id_inscri = N.id_elv
AND M.id = N.id_matiere
AND N.eval = '".$class."'
AND M.matiere = '".$mat."'
AND (N.date_enrg BETWEEN '".$debut."' AND '".$fin."')
ORDER BY I.matricule,N.id_matiere

") or die('no');


?>

voici une image de la table note :
Afficher la suite 

Votre réponse

4 réponses

jordane45 22941 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 22 octobre 2018 Dernière intervention - 2 juil. 2014 à 20:22
0
Merci
Hello.

As tu remarqué que les formats de date étaient différents entre tes deux tables ??

Commenter la réponse de jordane45
msi79 455 Messages postés lundi 24 août 2009Date d'inscription 9 octobre 2018 Dernière intervention - 2 juil. 2014 à 21:05
0
Merci
Oui j'ai remarqué ça c'est pourquoi j'ai essayé de faire :
  $debut = date("Y/m/d H:i:s",strtotime($debut)); 
pour avoir le même format
Commenter la réponse de msi79
jordane45 22941 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 22 octobre 2018 Dernière intervention - 2 juil. 2014 à 21:39
0
Merci
Ah oui désolé. ..je n'avais pas vu.

Mais...tu as fais un echo de tes variables ??

Le strtotime ne fonctionne pas sur les dates françaises.
Regarde cette discussion :

http://stackoverflow.com/questions/8051932/convert-a-date-in-french-format-in-a-mysql-datetime-format


Commenter la réponse de jordane45
msi79 455 Messages postés lundi 24 août 2009Date d'inscription 9 octobre 2018 Dernière intervention - 2 juil. 2014 à 22:12
0
Merci
OUI grand merci ça m'a bien inspiré .
ça marche . voici ce que j"ai fais
<?php

if(isset($_GET['mat'])); $mat = urldecode($_GET['mat']); //echo $mat;
if(isset($_GET['class'])); $class = urldecode($_GET['class']); //echo $class;
//RECUPERATION DU TRIMESTRE
$sql = "SELECT *
FROM trimestres
WHERE trim = 'TRIM1'
" ;
$req = mysql_query($sql) or die('no');
while($row = mysql_fetch_assoc($req)){
$debut = $row["debut"]; echo $debut.'<br/>';
$fin = $row["fin"];
//$debut = date("Y/m/d H:i:s",strtotime($debut));
//FORMATAGE DE DEBUT
$tabDate1 = explode('/' , $debut);
$date_debut = $tabDate1[2].'-'.$tabDate1[1].'-'.$tabDate1[0];
$date_debut = date( 'Y-m-d H:i:s', strtotime($date_debut) );
echo $date_debut.'<br/>';
//FORMATAGE DE DEBUT
$tabDate2 = explode('/' , $fin);
$date_fin = $tabDate2[2].'-'.$tabDate2[1].'-'.$tabDate2[0];
$date_fin = date( 'Y-m-d H:i:s', strtotime($date_fin) );
echo $date_fin;
}
//calcul de moyennes
$q = mysql_query("SELECT *
FROM inscription I
,notes N
,matieres M
WHERE I.id_inscri = N.id_elv
AND M.id = N.id_matiere
AND N.eval = '".$class."'
AND M.matiere = '".$mat."'
AND (N.date_enrg BETWEEN '".$date_debut."' AND '".$date_fin."')
ORDER BY I.matricule,N.id_matiere

") or die('no');


?>
Commenter la réponse de msi79

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.