le 23/02/2005 à 13:24
Script calcul durée
J'ai voulu utiliser votre script publié à cet adresse: http://www.lephpfacile.com/tips/index.php?p=11 .
Le problème c'est que je suis un débutant en php et en programmation en général. J'ai eu un certain nombre d'erreur c'est pourquoi je vous demande de l'aide.
Voici mon problème :
Je voudrais calculer la durée de sejour pour des individus dans une base de donnée mysql:
J'ai la date d'entrée et la date de sorti sous forme YYYY-MM-DD;
J'ai voulu utiliser les fonctions YEAR(DATE), MONTH(DATE) et DAYOFMONTH(DATE)
Voici où j'en suis :
Sans la partie du script le reste fonctionne; quand je l'ajoute j'ai une erreur de type undefine fonction DAYOFMONTH()
alors que quand je lance le select directement dans mon phpadmin j'ai bien les résultats.
Si vous pouvez m'aider cela m'avancerait vachement.
merci d'avance.
Cordialement
Le problème c'est que je suis un débutant en php et en programmation en général. J'ai eu un certain nombre d'erreur c'est pourquoi je vous demande de l'aide.
Voici mon problème :
Je voudrais calculer la durée de sejour pour des individus dans une base de donnée mysql:
J'ai la date d'entrée et la date de sorti sous forme YYYY-MM-DD;
J'ai voulu utiliser les fonctions YEAR(DATE), MONTH(DATE) et DAYOFMONTH(DATE)
Voici où j'en suis :
$connexion = mysql_connect($hote,$utilisateur,$password);
if($connexion>0)
echo "Connexion OK";
else
echo "pas de connexion active";
echo "</BR>";
//connexion à une base
$db = mysql_select_db("ma_base");
if($db>0)
echo "Selection de la base";
else
echo "Impossible de choisir la base";
echo "</BR>";
//prendre la liste des champs de la table
$mysql_result = mysql_query("SELECT ID, NIP, DATE_ENT, DATE_SOR, DAYOFMONTH(`DATE_ENT`), DAYOFMONTH(`DATE_SOR`), MONTH(`DATE_ENT`), MONTH(`DATE_SOR`), YEAR(`DATE_ENT`), YEAR(`DATE_SOR`) FROM ma_base;");
// Déclarer les variables de date
$jour1=DAYOFMONTH(`DATE_ENT`);
$jour2=DAYOFMONTH(`DATE_SOR`);
$mois1=MONTH(`DATE_ENT`);
$mois2=MONTH(`DATE_SOR`);
$annee1=YEAR(`DATE_ENT`);
$annee2=YEAR(`DATE_SOR`);
function facteur($jour , $mois , $annee){
$b=365*$annee;
$c=31*($mois-1);
if (($mois==1) || ($mois==2)){
$d= 0;
$e = intval(($annee -1)/4);
$h = intval(0.75*(intval(($annee-1)/100)+1));
}
else {
$d= intval(0.4*$mois+2.3);
$e = intval($annee/4);
$h = intval(0.75*(intval($annee/100)+1));
}
$result = $jour + $b+ $c - $d +$e -$h;
return $result;
}
function diff_dates_cal_greg($jour1 , $mois1 , $annee1 , $jour2 , $mois2 , $annee2){
$diff = facteur($jour2 , $mois2 , $annee2)-facteur($jour1 , $mois1 , $annee1);
return $diff;
$diff=DUREE_SEJ;
}
//prendre chaque rangée
echo "<TR><TD>ID</TD><TD>NIP</TD><TD>DATE_ENT</TD><TD>DATE_SOR</TD><TD>DUREE_SEJ</TD></TR>\n";
while($row = mysql_fetch_array($mysql_result))
{while (list($key,$val)=each($row))
print "<TR>\n" ;
print "<TD>".$row['ID']. "</TD><TD>".$row['NIP']."</TD><TD>".$row['DATE_ENT']. "</TD><TD>".$row['DATE_SOR']. "</TD><TD>".$row['DUREE_SEJ']."</TD>\n";
print "</TR>\n";
}
//Fermeture de la base
mysql_close($connexion);
echo "Fermetture de connexion";
echo "</BR>";
?>
</TABLE>
</body>
</html>
Sans la partie du script le reste fonctionne; quand je l'ajoute j'ai une erreur de type undefine fonction DAYOFMONTH()
alors que quand je lance le select directement dans mon phpadmin j'ai bien les résultats.
Si vous pouvez m'aider cela m'avancerait vachement.
merci d'avance.
Cordialement