par
nestor94 » 14 févr. 2022, 19:06
Merci ynx pour ces explications. Cela reste quand même brouillon dans ma tête et pas très clean.
Je ne pense pas utiliser dateTime car mon calendrier est particulier: 360 jours "découpés" en 4, loin du format D M Y !
J'ai donc revu mon code en utilisant mktime pour un rendu plus propre.
$sql = "SELECT * FROM calendrier" ;
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
$resultat = $pdostat->fetch();
$saison = $resultat['saison'];
$jour = $resultat['jour'];
$meteo = $resultat['meteo'];
$heure = date("H:i");
if($jour < 75) {
$hts = mktime(date("H"),date("i"),0,date("m"), date("d"), date("Y"));
$debut = mktime(17, 00, 0, date("m"), date("d"), date("Y"));
$fin = mktime(10, 00, 0, date("m"), date("d"), date("Y"));
}
/* Si l'heure courante est supérieure à l'heure OU inférieure à l'heure */
if($hts > $debut || $hts < $fin)
{
$sql ="UPDATE calendrier SET meteo= '/images/neige_nuit.gif'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
else {
$sql ="UPDATE calendrier SET meteo= '/images/neige.gif'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
if($jour > 76 || $jour < 150) {
$hts = mktime(date("H"),date("i"),0,date("m"), date("d"), date("Y"));
$debut = mktime(21, 00, 0, date("m"), date("d"), date("Y"));
$fin = mktime(07, 00, 0, date("m"), date("d"), date("Y"));
}
/* Si l'heure courante est supérieure à l'heure OU inférieure à l'heure */
if($hts > $debut || $hts < $fin)
{
$sql = "UPDATE calendrier SET meteo = '/images/nuage_nuit.gif'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
else {
$sql = "UPDATE calendrier SET meteo = '/images/soleil_nuage.gif'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
J'en suis toujours au meme stade: la 1ere condition fonctionne seulement si je la mets seule. Le bout de script tel que présenté va afficher la seconde condition !
Merci ynx pour ces explications. Cela reste quand même brouillon dans ma tête et pas très clean.
Je ne pense pas utiliser dateTime car mon calendrier est particulier: 360 jours "découpés" en 4, loin du format D M Y !
J'ai donc revu mon code en utilisant mktime pour un rendu plus propre.
[PHP]
$sql = "SELECT * FROM calendrier" ;
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
$resultat = $pdostat->fetch();
$saison = $resultat['saison'];
$jour = $resultat['jour'];
$meteo = $resultat['meteo'];
$heure = date("H:i");
if($jour < 75) {
$hts = mktime(date("H"),date("i"),0,date("m"), date("d"), date("Y"));
$debut = mktime(17, 00, 0, date("m"), date("d"), date("Y"));
$fin = mktime(10, 00, 0, date("m"), date("d"), date("Y"));
}
/* Si l'heure courante est supérieure à l'heure OU inférieure à l'heure */
if($hts > $debut || $hts < $fin)
{
$sql ="UPDATE calendrier SET meteo= '/images/neige_nuit.gif'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
else {
$sql ="UPDATE calendrier SET meteo= '/images/neige.gif'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
if($jour > 76 || $jour < 150) {
$hts = mktime(date("H"),date("i"),0,date("m"), date("d"), date("Y"));
$debut = mktime(21, 00, 0, date("m"), date("d"), date("Y"));
$fin = mktime(07, 00, 0, date("m"), date("d"), date("Y"));
}
/* Si l'heure courante est supérieure à l'heure OU inférieure à l'heure */
if($hts > $debut || $hts < $fin)
{
$sql = "UPDATE calendrier SET meteo = '/images/nuage_nuit.gif'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
else {
$sql = "UPDATE calendrier SET meteo = '/images/soleil_nuage.gif'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
[/PHP]
J'en suis toujours au meme stade: la 1ere condition fonctionne seulement si je la mets seule. Le bout de script tel que présenté va afficher la seconde condition !