IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

comparaison entre deux temperatures


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2017
    Messages : 42
    Par défaut comparaison entre deux temperatures
    Bonjour,

    Je souhaiterai faire une comparaison entre deux températures tempcel2 et tempcel

    tempcel2 est la conversion d'une température en f° ( celle-ci devient en celcius)
    j'ouvre un fichier temp.txt
    je reviens au premier caractère de ce fichier.

    Avec le if je voudrais que si tempcel2 est supérieure à tempcel qu'il m'inscrive dans le fichier test.txt la nouvelle valeur de tempcel2. Si tempcel2 est égale ou inférieure aucune action




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $tempcel2 = round( ( $weather_data['tempf'] - 32 ) * 5 / 9, 2 ); #
    $fp = fopen ("temp.txt", "r+"); 
    $tempcel = fgets ($fp, 11);
    fseek ($fp, 0);
    if ($tempcel2) > = ($tempcel) {
    fputs ($fp, $tempcel2);
    fclose ($fp);
    }
    Merci pour votre aide, j'ai essayé plusieurs trucs en vain.

    Sébastien

  2. #2
    Membre très actif
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Par défaut
    Tu optiens quoi comme résultat, une erreur ou autre ?
    Tu peux commencer par afficher les valeurs de tes variables pour débuguer et vérifier qu'il passe bien dans ta boucle if.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2017
    Messages : 42
    Par défaut
    merci pour ta réponse.

    Mon fichier php initial me crée un fichier txt qui récupère les données d'une station météo.

    Avec l'ajout de ce code, mon fichier n'est plus généré alors qu'il fonctionnait bien avant.

    je vous donne la fin de mon fichier

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    # Write stream to Weewx file
    if ( $txt_weewx == 1 )
    {
        @$weather_data_weewx['outTemp'] = $weather_data['tempf'] ;
        @$weather_data_weewx['barometer'] = $weather_data['baromrelin'] ;
        @$weather_data_weewx['pressure'] = $weather_data['baromrelin'] ;
        @$weather_data_weewx['outHumidity'] = $weather_data['humidity'] ;
        @$weather_data_weewx['windSpeed'] = $weather_data['windspeedmph'] ;
        @$weather_data_weewx['windDir'] = $weather_data['winddir'] ;
        @$weather_data_weewx['windGust'] = $weather_data['windgustmph'] ;
        @$weather_data_weewx['rainRate'] = $weather_data['rainratein'] ;
        @$weather_data_weewx['rain_total'] = $weather_data['totalrainin'] ;
        @$weather_data_weewx['inTemp'] = $weather_data['tempinf'] ;
        @$weather_data_weewx['inHumidity'] = $weather_data['humidityin'] ;
        @$weather_data_weewx['radiation'] = $weather_data['solarradiation'] ;
        @$weather_data_weewx['UV'] = $weather_data['uv'] ;
        @$weather_data_weewx['windchill'] = $weather_data['windchillf'] ;
        @$weather_data_weewx['dewpoint'] = $weather_data['dewptf'] ;
    	@$weather_data_weewx['pointgivrec'] = $weather_data['pointgivrec'] ;
        @$weather_data_weewx['extraTemp1'] = $weather_data['temp1f'] ;
        @$weather_data_weewx['extraHumid1'] = $weather_data['humidity1'] ;
        @$weather_data_weewx['extraTemp2'] = $weather_data['temp2f'] ;
        @$weather_data_weewx['extraHumid2'] = $weather_data['humidity2'] ;
        @$weather_data_weewx['extraTemp3'] = $weather_data['temp3f'] ;
        @$weather_data_weewx['extraHumid3'] = $weather_data['humidity3'] ;
        @$weather_data_weewx['soilTemp1'] = $weather_data['soilmoisture1'] ;
        @$weather_data_weewx['windBatteryStatus'] = $weather_data['windBatteryStatus'] ;
        @$weather_data_weewx['rainBatteryStatus'] = $weather_data['rainBatteryStatus'] ;
        @$weather_data_weewx['outTempBatteryStatus'] = $weather_data['batt1'] ;
        @$weather_data_weewx['consBatteryVoltage'] = $weather_data['consBatteryVoltage'] ;
        @$weather_data_weewx['supplyVoltage'] = $weather_data['supplyVoltage'] ;
        @$weather_data_weewx['heatingVoltage'] = $weather_data['heatingVoltage'] ;
        @$weather_data_weewx['txBatteryStatus'] = $weather_data['txBatteryStatus'] ;
         @$weather_data_weewx['rain'] = $weather_data['eventrainin'] ;
     
     
     
        $stringa = "outTemp=" . @$weather_data_weewx['outTemp'] . "\nbarometer=" . @$weather_data_weewx['barometer'] . "\npressure=" . @$weather_data_weewx['pressure'] . "\noutHumidity=" . @$weather_data_weewx['outHumidity'] . "\nwindSpeed=" . @$weather_data_weewx['windSpeed'] . "\nwindDir=" . @$weather_data_weewx['windDir'] . "\nwindGust=" . @$weather_data_weewx['windGust'] . "\nrainRate=" . @$weather_data_weewx['rainRate'] . "\nrain=" . @$weather_data_weewx['rain'] . "\nrain_total=" . @$weather_data_weewx['rain_total'] . "\ninTemp=" . @$weather_data_weewx['inTemp'] . "\ninHumidity=" . @$weather_data_weewx['inHumidity'] . "\nradiation=" . @$weather_data_weewx['radiation'] . "\nUV=" . @$weather_data_weewx['UV'] . "\nwindchill=" . @$weather_data_weewx['windchill'] . "\ndewpoint=" . @$weather_data_weewx['dewpoint'] . "\nextraTemp1=" . @$weather_data_weewx['extraTemp1'] . "\nextraHumid1=" . @$weather_data_weewx['extraHumid1'] . "\nextraTemp2=" . @$weather_data_weewx['extraTemp2'] . "\nextraHumid2=" . @$weather_data_weewx['extraHumid2'] . "\nextraTemp3=" . @$weather_data_weewx['extraTemp3'] . "\nextraHumid3=" . @$weather_data_weewx['extraHumid3'] . "\nsoilTemp1=" . @$weather_data_weewx['soilTemp1'] . "\nwindBatteryStatus=" . @$weather_data_weewx['windBatteryStatus'] . "\nrainBatteryStatus=" . @$weather_data_weewx['rainBatteryStatus'] . "\noutTempBatteryStatus=" . @$weather_data_weewx['outTempBatteryStatus'] . "\nconsBatteryVoltage=" . @$weather_data_weewx['consBatteryVoltage'] . "\nsupplyVoltage=" . @$weather_data_weewx['supplyVoltage'] . "\ntxBatteryStatus=" . @$weather_data_weewx['txBatteryStatus'] . "\nheatingVoltage=" . @$weather_data_weewx['heatingVoltage'] . "\n";
        $txt_weewx_logfile = $txt_dir_weewx . "/export_weewx.txt";
        $file = fopen($txt_weewx_logfile, 'w');
        fwrite($file, $stringa);
        fclose($file);
    }
     
    $tempcel2 = round( ( $weather_data['tempf'] - 32 ) * 5 / 9, 2 );
    $fp = fopen ("temp.txt", "r+");
    $tempcel = fgets ($fp, 11);
    fseek ($fp, 0);
    if ($tempcel2) > = ($tempcel) {
    fputs ($fp, $tempcel);
    fclose ($fp);
    }
     
    print("success\n");
     
     
     
    ?>
    il y a peut-être un conflit entre les deux écritures.

    Sebastien

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2017
    Messages : 42
    Par défaut
    Bonjour,

    Je vais expliquer ma problématique. J'ai une station météo : WALDBECK Halley WHT3, elle n'a pas d'afficheur et envoi ses données directement sur internet avec sa propre interface. Je l'ai interfacé avec le logiciel Weewx sous raspberry.

    Tous les dix minutes, mes données sont envoyées sur weewx.

    Je récupère pleins valeurs de variables ( temperatures, humidité, pression ...... )

    J'ai une variable pluie instantanée qui ne se remet pas tout de suite à jour. Après une forte averse si pendant 30 minutes, il pleut plus, la valeur de cette variable reste toujours au max. Donc j'ai conclu que je ne dois pas utiliser cette variable.

    J'ai besoin en fait de connaitre la pluviométrie journalière et j'ai cette valeur que nous allons appeler "dailyrain", le logiciel que j'utilise weewx, incrémente la pluviométrie

    ex : il a plu 10 mm d'eau aujourd'hui, il va donc m'ajouter 10mm tous les 10 minutes à la fin de la journée ça fait beaucoup, j'ai donc fait ce petit programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $fp = fopen ("delta.txt", "r+");
    $daily = fgets ($fp, 11);
    fseek ($fp, 0);
    $daily2 =  round( $weather_data['dailyrainin'] * $f_in_mm, 2 );
    $daily = $daily2 - $daily;
    fputs ($fp, $daily);
    fclose ($fp);
    J'explique mon programme, j'ouvre un fichier nommé delta.txt dans lequel j'ai déja une valeur. J'ai la variable $daily2 qui est la valeur transmise par la station météo qui était en inch et que je passe en mm, j'ensuite je fais la soustraction de la nouvelle valeur avec l'ancienne pour retrouver le delta de ses deux valeurs. Mon but est d'envoyer ce delta au programme Weewx. Si il y a pas de changement le résultat doit être nul. Mais le problème, c'est que le résultat revient à la valeur de $daily2 comme si il y avait une erreur dans mon programme.

    Une solution ????? Des questions pour comprendre ????

    Merci

    Sébastien

  5. #5
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    juste une remarque : ton fclose est mal placé. Il faudrait faire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    $tempcel2 = round( ( $weather_data['tempf'] - 32 ) * 5 / 9, 2 ); #
    $fp = fopen ("temp.txt", "r+"); 
    $tempcel = fgets ($fp, 11);
    fseek ($fp, 0);
    if ($tempcel2) > = ($tempcel) {
        fputs ($fp, $tempcel2);
    }
    fclose ($fp);

    Quel rapport avec les bases de données ?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2017
    Messages : 42
    Par défaut
    Merci pour la réponse.


    je me suis trompé de rubrique. Un modérateur pourra peut être changer svp.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $daily2 =  $weather_data['dailyrainin'];
    $fp = fopen ("delta.txt", "r+");
    $daily = fgets ($fp, 11);
    fseek ($fp, 0);
    $daily = $daily2 - $daily;
    fputs ($fp, $daily);
    fclose ($fp);
    Ce code colle plus à la réalité.

    Le problème vient de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $daily = $daily2 - $daily;
    $daily c'est la pluie depuis minuit.
    $daily2 c'est le nouveau relevé de pluie.

    Je veux faire une soustraction entre la valeur présente dans le fichier "delta.txt" qui est $daily et ma nouvelle valeur via $daily2.

    Si il y a pas de changement ex : Nouvelle entrée delta.txt ($daily) = relevé station méteo ( $daily2) - ancienne valeur delta.txt ( $daily ) .

    J'ai des nombres décimaux à soustraire.

    Si pas de changement de valeur la somme sera égale à zéro.

    Merci

Discussions similaires

  1. Comparaison entre deux chaînes
    Par fifi87 dans le forum Assembleur
    Réponses: 2
    Dernier message: 12/12/2006, 20h55
  2. Comparaison entre deux variables
    Par delavega dans le forum ASP
    Réponses: 8
    Dernier message: 23/11/2006, 16h42
  3. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 11h16
  4. Réponses: 6
    Dernier message: 18/04/2006, 13h11
  5. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo