Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour à tous
Je possede une station météo amateur et je bloque sur se sujet etant un debutant en php je vient vers vous pour de l'aide ,merci d'avance
Comment faire pour associer l'heure de la journée et la saison en cours pour affiner la comparaison soit le matin ,l'apres midi , la nuit car une temperature estivale de 16 °C le matin ou la nuit n'a pas la même valeur q'une température en pleine apres midi
Code:
$moisjour = date("md");
if ($moisjour >= '1221') {$saison = include("hiver.php");
}
elseif ($moisjour >= '0923') {$saison = include("automne.php");
}
elseif ($moisjour >= '0621') {$saison = include("ete.php");
}
elseif ($moisjour >= '0320') {$saison = include("printemps.php");
}
else {$saison = include("hiver.php");
}
$heure = date("Hi");
if($heure >= '0600' && $heure <= '1259'){ $resultat='Pour ce matin';}
elseif($heure >= '1300' && $heure <= '1859' )$resultat='Pour cette aprés-midi';
elseif($heure >= '1900' && $heure <= '2159') $resultat='Pour cette fin de Journée';
elseif($heure >= '2200' && $heure <= '2359') $resultat='Pour cette Nuit';
elseif($heure >= '0100' && $heure <= '0559') $resultat='Pour cette Nuit';
else $heure='Pour ce matin';
je vois qu'il faut créé un fichier php matin d'ete,apres midi d'ete ,nuit d'ete mais je ne vois pas comment associer la position de la journée avec la saison
j-ai essayer ceci sans resultat
if ($moisjour >= '0621') and ($heure >= '0600' && $heure <= '1259') {$saison = include("matintete.php");
}
elseif($heure >= '1300' && $heure <= '1859' )and ($moisjour >= '0621') {$saison = include("apresmidiete.php");
}
elseif($heure >= '2200' && $heure <= '2359')and ($moisjour >= '0621') {$saison = include("nuitete.php");
}
Merci de votre aide
Hors ligne
Bonjour,
Ton problème m'interesse au niveau conception. Or à ce niveau on aurait besoin des définitions conceptuelles avec un exemple numérique du modèle pour t'aider à le résoudre.
En outre, ce qui est certain c'est que ton problème semble resolvable en base de données directement, ce qui est beaucoup plus performant et simple que ce genre de résolution en PHP.
++
EDIT: Qu'entends-tu par saison? une saison au sens astronomique du terme (délimité par les équinoxes), où au sens période de date fixe? bref, on a besoin aussi d'avoir ce genre d'informations
Dernière modification par Jc (04-08-2011 11:14:06)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Re,
je vois qu'il faut créé un fichier php matin d'ete,apres midi d'ete ,nuit d'ete mais je ne vois pas comment associer la position de la journée avec la saison
Excuse-nous aussi, mais d'où vient cette pertinence à créer de tels fichiers php? Que contienne-t-ils par rapport à cette pertinence? et au contexte?
Je commence à entrevoir la démarche conceptuelle et ne serait-il pas mieux de générer le contexte en SQL et suite au résultat de la requête on génère une URL dynamiquement pour appeler un fichier PHP avec une nomenclature de codage du style
../../result.php?s=1&p=3
avec pour s, 1=hiver,2=automne,3=été,4=printemps et pour p, 1=matin,2=après-midi,3=fin de journée, 4=soir, 5=nuit
Ce n'est que mon avis.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour JC
je considere la saison été ,automne ,hiver....
partant d'une température de x°C (je fais une include de la temperature dans mon fichier )
Exemple :si la température est de 16°C et que nous sommes le matin dans mon fichier matinete.php
<?php /* Date de création: 13/07/2011 */ ?>
<html>
<body>
<?php
if($temperature <= '-25') {$commentaire='Glaciale';}
elseif($temperature > '-25' && $temperature <= '-20') $commentaire='Glaciale';
elseif($temperature > '-20' && $temperature <= '-15') $commentaire='Glaciale';
elseif($temperature > '-15' && $temperature <= '-10') $commentaire='Glaciale';
elseif($temperature > '-10' && $temperature <= '-5') $commentaire='Glaciale';
elseif($temperature > '-5' && $temperature <= '0') $commentaire='Matinée Glaciale pour un été';
elseif($temperature > '0' && $temperature <= '5') $commentaire='Matinée Trés Froid (Vraiment Froid pour la saison)';
elseif($temperature > '5' && $temperature <= '10') $commentaire='Matinée Froide (Pas tres chaud pour l\'été)';
elseif($temperature > '10' && $temperature <= '15') $commentaire='Matinée Froide avec un indice de chaleur (Plutôt froid pour l\'été)';
elseif($temperature > '15' && $temperature <= '20') $commentaire='Matinée agréable avec un indice de chaleur (Plutôt agréable cette matinée d\'été)';
elseif($temperature > '20' && $temperature <= '25') $commentaire='Matinée agréable avec un indice de chaleur (Plutôt Chaude cette matinée d\'été)';
elseif($temperature > '25' && $temperature <= '30') $commentaire='Matinée trés Chaud (enfin l\'été)';
elseif($temperature > '30' && $temperature <= '35') $commentaire='Chaleur Estivale pour cette Matinée d\'été';
elseif($temperature > '35' && $temperature <= '40') $commentaire='C\'est la Canicule ce matin';
elseif($temperature > '40') $commentaire='C\'est la Canicule ce matin';
else $commentaire='Canicule';
?>
</body>
</html>
on affiche donc
"Matinée agréable avec un indice de chaleur (Plutôt agréable cette matinée d\'été)"
mais la ou je ne sait plus faire c'est la liaison entre l'heure de la journée qui determine la position de la journée et la saison actuel
j'espere bien me faire comprendre
cordialement
Ps sur mon site www.saint-sauveur-meteo.fr en haut à gauche sous le menu la réalisation de mon script pour l'instant je ne tient pas en compte l'assosiation heure de la journée et saison mais uniquement de la saison
Hors ligne
Merci pour ton retour.
Je suppose que la pertinence de ces include, viens à l'origine, du fait que pour chaque type de saison, les intervalles de température pour ces commentaires changent et sont par conséquent globalement dynamiques. C'est cela?
Matinée agréable avec un indice de chaleur (Plutôt agréable cette matinée d\'été)"
mais la ou je ne sait plus faire c'est la liaison entre l'heure de la journée qui determine la position de la journée et la saison actuel
Supposons que ce lien soit fait correctement, comment souhaites-tu l'exploiter?
Merci pour tes réponses.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Autre question : Est-ce que le nombre d'intervalles de températures à gérer pour établir tes commentaires est globalement invariant?
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
je souhaite l'exploitation suivante
j-ai essayer ceci sans resultat
if ($moisjour >= '0621') and ($heure >= '0600' && $heure <= '1259') {$saison = include("matintete.php");
}
elseif($heure >= '1300' && $heure <= '1859' )and ($moisjour >= '0621') {$saison = include("apresmidiete.php");
}
elseif($heure >= '2200' && $heure <= '2359')and ($moisjour >= '0621') {$saison = include("nuitete.php");
}
peut etre que la commande "and" n'est pas la bonne pour assoiciation
Hors ligne
Ca j'avais bien compris. Ce qui était sous-entendu, c'était l'usage que tu en fait dans ton fichier matinete.php par exemple.
Je pense qu'après je pourrais te donner un algo qui te divise ton code par deux (à vue de nez) ainsi que tes traitements.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Si tu veux une explication logique de ton dernier bout de code, c'est qu'il ne traite pas tous les cas de figure, et par conséquent, si tu le teste avec des valeurs qu'il ne gère pas, il te retournera rien.
Pour être concret il ne gère pas les plages horaires entre 19h et 22h et entre 00h et 06h. De plus il est faux du point de vue saisons car si on est en décembre, il considérera que l'on est en été.
Ton problème, viens de la complexité inutile de ta conception, qui fait à un moment ou un autre, que tu te mélanges les pédales tout seul.
++
Dernière modification par Jc (04-08-2011 12:47:35)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Erreur de ma part la je ne donne qu"un exemple car en fait j ai crér un fichier matinete.php , apresmidiete.php , nuitete.php ,
matinhiver.php , apresmidihiver.php , nuithiver.php ....et ainsi de suite
je pense que je gere bien les plages horaires
$heure = date("Hi");
if($heure >= '0600' && $heure <= '1259'){ $resultat='Pour ce matin';}
elseif($heure >= '1300' && $heure <= '1859' )$resultat='Pour cette aprés-midi';
elseif($heure >= '1900' && $heure <= '2159') $resultat='Pour cette fin de Journée';
elseif($heure >= '2200' && $heure <= '2359') $resultat='Pour cette Nuit';
elseif($heure >= '0100' && $heure <= '0559') $resultat='Pour cette Nuit';
else $heure='Pour ce matin';
de même pour les saisons même si c'est à la louche pour l'instant pour moi il ne me manque que la fusion des deux
Cordialement
Hors ligne
En ce qui me concerne, même si ce que j'ai dit est à la louche aussi pour l'instant, pour moi il me manque que ce que je t'ai demandé.
Cordialement.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Sinon mathématiquement parlant c'est pas difficile. Si on pars du fait que tes intervalles de températures à traiter soient constantes d'une saison à l'autre tu as 15*4*5=300 cas de figure distincts, qui chacun d'entre eux font respectivement l'object d'un commentaire distinct.
Bonne continuation.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
excuse moi mais je ne vois pas ce que tu me demande
Ps je suis un petit debutant qui ne comprend pas grand chose en informatique pour l'instant je me debrouille par copier\coller et aide eventuel
la température actuel est donnée par la station météo mis dans un fichier (temp.php) sur le fichier de demarrage de la conversation je fait une include (temp.php) ensuite je verifie la position de la journée sommes nous le matin , l'apres-midi , le soir
ensuite je verifie la saison sommes nous en été , en, hiver , en automne , au prinptemps
suite a la verification la nous sommes en été pour l'instant je possede un fichier ete.php ,hiver.php ,automne.php
prinptemps.php ce que j'aimerai maintenant c'est de verifie et d'associer la position de la journée et la saison
car si je dit pout l'instant avec ce que je possede il fait 16°C et nous sommes l'apres-midi le commentaire ne serat pas le même si on n'est la nuit , ou le matin (une température de 16°C la nuit en été peut etre agéable alors que dans l'apres-midi cela pourrait etre froid )c 'est pour cela que j'ai deja crée les fichier matinete.php apresmidiete.php , nuitete.php et pour toutes les saisons il ne me manque que la fusion de la position de la journée avec la saison en cours
Cordialement
Hors ligne
Je n'ai pas écris pour le moment une seule ligne de code, donc rien de technique pour un débutant, juste des infos conceptuelles de comment sont organisés les informations que tu traites et comment tu les traite, chose d'ailleurs que tu m'a pas dit en totalité, et que je vais m'en contenter quand même au risque de te donner une solution inadaptée.
Donc tout ce que je t'ai demandé, pour comprendre, il suffit de lire normalement, pas d'essayer d'imaginer ce que ca pourrait vouloir dire d'autre, je ne suis pas pervers, mais mon souci c'est que je ne suis pas devin non plus.
Ton approche pour résoudre ton problème, n'est pas logique au sens premier du terme. Tu as trois paramètres 1)La saison 2) L'heure 3) La plage de température pour laquelle ta température t à un instant donnée appartient. Or ces trois paramètres sont liés entre eux. Donc soit tu traites les 300 combinaisons possibles de ces paramètres (au vu des informations que tu m'as fournies) en une seule fois, soit tu traites une information en fonction des deux autres, par exemple les saisons en fonction de l'heure et de la t°C (ce qui te conduirait dans ce cas à avoir un fichier php par saison dans lequel tu traites ce que je viens d'exprimer).
Ce que tu essayes de faire par contre ressemble ou se rapproche de la création de 300 fichiers (1 par cas de figure). C'est caricaturé certes, mais on en est pas loin.
Donc reprends ta méthode, et à partir du moment ou tu n'oublies pas un cas de figure, ton application devrait fonctionner correctement.
++
EDIT: De plus, si tu fais attention à la réutilisation du code écris, et que tu passes par une requête mysql, tu peux économiser la moitié de tes traitements php et donc gagner en performances, lisibilité, et maintenance de ton code.
Dernière modification par Jc (04-08-2011 15:55:19)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
OK merci de ton aide
je vais essayer de me debrouiller
mais si tu lit mon post il n'y a pas 300 conbinaison possible car suivant la plage de temperature qui peut aller de 10°C à 15°C cela diminuer le nombre de resultat surtout que des lignes peuvent etre supprimer l'orsque l on se trouve en été il n'y a pas souvent de -20°C
si tu regarde de plus pres tu vas voir que cela ne concerne que quelques combinaisons
if($temperature <= '-25') {$commentaire='Glaciale';}
elseif($temperature > '-25' && $temperature <= '-20') $commentaire='Glaciale';
elseif($temperature > '-20' && $temperature <= '-15') $commentaire='Glaciale';
elseif($temperature > '-15' && $temperature <= '-10') $commentaire='Glaciale';
elseif($temperature > '-10' && $temperature <= '-5') $commentaire='Glaciale';
elseif($temperature > '-5' && $temperature <= '0') $commentaire='Matinée Glaciale pour un été';
elseif($temperature > '0' && $temperature <= '5') $commentaire='Matinée Trés Froid (Vraiment Froid pour la saison)';
elseif($temperature > '5' && $temperature <= '10') $commentaire='Matinée Froide (Pas tres chaud pour l\'été)';
elseif($temperature > '10' && $temperature <= '15') $commentaire='Matinée Froide avec un indice de chaleur (Plutôt froid pour l\'été)';
elseif($temperature > '15' && $temperature <= '20') $commentaire='Matinée agréable avec un indice de chaleur (Plutôt agréable cette matinée d\'été)';
elseif($temperature > '20' && $temperature <= '25') $commentaire='Matinée agréable avec un indice de chaleur (Plutôt Chaude cette matinée d\'été)';
elseif($temperature > '25' && $temperature <= '30') $commentaire='Matinée trés Chaud (enfin l\'été)';
elseif($temperature > '30' && $temperature <= '35') $commentaire='Chaleur Estivale pour cette Matinée d\'été';
elseif($temperature > '35' && $temperature <= '40') $commentaire='C\'est la Canicule ce matin';
elseif($temperature > '40') $commentaire='C\'est la Canicule ce matin';
else $commentaire='Canicule';
Cordialement
Hors ligne
...chose d'ailleurs que tu m'a pas dit en totalité,...
...300 combinaisons possibles de ces paramètres (au vu des informations que tu m'as fournies)....
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
ok probleme resolu ( en 60 combinaisons)
Hors ligne
Pages :: 1